我知道现在使用 Xcode,建议使用 ARC,但是我读过一些关于它与 iOS 4.x 不兼容的信息,至少在使用 __weak
时是这样的。 .当我创建 IBOutlet
它提供了 的选择弱 或 强作为存储类型,这是否意味着我的应用程序仅限于 iOS 5 或更高版本,还是仍可在较旧的 iOS 上运行?
最佳答案
绝对只使用ARC。正如您所指出的,如果您选择提供 iOS 4.3 兼容性,您将无法享受 weak
的这一点小好处。变量,它们会自动出现nil
-ed 在它们被释放时为您服务(但您在非 ARC 代码中没有该功能,因此您不会丢失任何东西)。而且,是的,当您从 Interface Builder 控制拖动到 .h 文件时,它说您只有 strong
和 weak
选项,但至少在最新的 Xcode 中,如果您将 iOS 4.3 作为目标并选择 weak
,它会自动为您创建一个 __unsafe_unretained
,所以一切都很好。
简而言之,使用 ARC,即使您的目标是支持 iOS 4.3,您的编码生命周期也会比不使用 ARC 的情况好得多。即使在 iOS 4.3 中,您也能获得如此多美妙的 ARC 好处。如果您愿意使用 iOS 5.0 作为您的目标部署,那么您将享受 ARC 的全部优势。
如果你使用 Xcode 4.5,你肯定会失去对 armv6 的支持,这是 iPhone 3G 和更早版本的处理器,所以你的应用程序将只支持 iPhone 3GS 和更高版本。
关于objective-c - ARC IBOutlet 存储类型 iOS 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13697625/