遵循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] 举报,一经查实,本站将立刻删除。