微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

您是否需要在iOS 6.0中释放ARC下的GCD队列?

遵循Paul Hegarty课程的iOS 5教程,我们在一个演示使用GCD的应用程序中看到这个代码。显然,GCD需要发布,因为与多线程有关的问题在某些对象仍然需要时有些不可预测。

dispatch_async(dowloadQueue,^{
    ....
    // do some stuff
   ....
    });
  dispatch_release(dowloadQueue);

我已经升级到iOS 6和XCode 4.5,我得到了
     “ARC禁止显式释放…”消息

我没有尝试这个代码在iOS5 / XCode 4.2下

这是因为ARC更聪明,我不再需要在GCD中发行吗?
还是我只是误解了?

解决方法

当您瞄准Mountain Lion和iOS 6.0时,ARC现在将为您管理调度队列和其他GCD类型。如果您定位早期版本的OS X或iOS,您仍然需要明确保留和释放GCD类型(不仅仅是为了线程安全的原因,否则会泄漏内存),但是只有在针对较新的操作系统时才会为您处理版本。

这就是为什么在定位iOS 6.0时会在ARC下看到这样的编译器错误。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐