iOS目标5和iOS目标6

时间:2015-10-01 08:35:03

标签: ios objective-c iphone xcode automatic-ref-counting

我的iOS应用程序是使用iOS 5 SDK编写的。当我根据apple的要求切换到更新版本的SDK时,iOS目标版本5从未被修改过。 使用新的SDK(9),我无法使用旧设置进行编译,并且我试图切换到更新的目标。 (6,7,8,9,我得到同样的问题)。该应用程序混合代码,一些文件使用ARC而一些文件不使用。当我切换到更新的操作系统目标时,我得到很多关于ARC的错误,主要是在调度队列管理(dispatch_retain / dispatch_release)周围。如果我添加-fno-objc-arc应用程序崩溃,如果我删除dispatch_retain / release调用应用程序崩溃。我的问题是:

  1. 是否有人知道在iOS 5和6之间重新规划ARC的SDK编辑中发生了哪些变化?
  2. 有关如何前进的任何建议?有没有办法保持启用弧但是告诉编译器允许手动处理调度队列?

1 个答案:

答案 0 :(得分:0)

  1. 没什么重要的。
  2. 无论如何,您必须手动管理队列。 ARC与dispatch_ *交互的唯一方法是使用块。这可能是一直存在的问题,并且新编译器中的优化会使它暴露出来。
  3. 如果没有看到代码,就很难提出任何具体的建议。通常,我倾向于在应用程序启动时设置队列,并且永远不会释放它。试图找到合适的时间来保留/释放队列就像是一个我不需要处理的问题。