ARC IBOutlet存储类型iOS限制

时间:2012-12-04 06:57:38

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

我知道现在使用Xcode,建议使用ARC,但是我已经阅读了一些与iOS 4.x不兼容的内容,至少在使用__weak时是这样。当我创建IBOutlet时,它会选择作为存储类型,这是否意味着我的应用程序仅限于iOS 5或更高版本,或者它还会在较旧的iOS上运行吗?

3 个答案:

答案 0 :(得分:2)

绝对只使用ARC。正如您所指出的,如果您选择提供iOS 4.3兼容性,那么您不会享受weak变量的一个小优势功能,它们会在他们自动nil时为您提供。重新分配(但你在非ARC代码中没有这个功能,所以它不像你丢失任何东西)。并且,是的,当您从Interface Builder 控制 -drag到.h文件时,它表示您只有strongweak选项,但在最新的Xcode中,至少,如果您将iOS 4.3作为目标并选择weak,它会自动为您创建__unsafe_unretained,所以一切都很好。

简而言之,即使您的目标是支持iOS 4.3,也要使用ARC,并且您的编码寿命将比不使用ARC时更好。即使在iOS 4.3中,您也可以获得如此多的精彩ARC优势。如果您愿意使用iOS 5.0作为目标部署,那么您将享受ARC的全部优势。

如果你使用Xcode 4.5,你肯定会失去对iPhone 3G及更早版本的处理器armv6的支持,因此你的应用程序只支持iPhone 3GS及更高版本。

答案 1 :(得分:1)

不,ARC只是编译器功能。这是每个文件,因此它根本不会影响您现有的代码。

答案 2 :(得分:0)

iOS版本支持取决于您的Xcode版本。

使用最新版本的Xcode(4.5),您可以为iOS 4.3及更高版本创建应用程序。如果您需要为早期版本的iOS(4.3之前的版本)创建应用程序,则需要安装Xcode 4.4.1。