加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 02:04:43 所属栏目:百科 来源:网络整理
导读:遵循Paul Hegarty课程的iOS 5教程,我们在一个演示使用GCD的应用程序中看到这个代码。显然,GCD需要发布,因为与多线程有关的问题在某些对象仍然需要时有些不可预测。 dispatch_async(dowloadQueue,^{ .... // do some stuff .... }); dispatch_release(dowl
遵循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下看到这样的编译器错误。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读