接口构建器不再为IBOutlet生成符合ARC的代码

时间:2012-05-21 21:07:02

标签: ios xcode interface-builder iboutlet

我正在使用XCode 4.3.2实现我的第一个iOS 5.1应用程序,我正在尝试一种奇怪的XCode接口构建器行为。

我在界面构建器中创建了一个带有NIB文件的ViewController,并且在将任何UI对象连接到ViewController .h以创建IBOutlet属性时,用于设置出口属性的对话框窗口不显示“存储”字段。

要清楚,界面构建器显示此对话框:

Screenshot 1

而不是这一个:

Screenshot 2 http://i47.tinypic.com/28b8xth.png

因此,接口构建器生成的代码如下所示:

@property (unsafe_unretained, nonatomic) IBOutlet UILabel *labelName;

虽然我期待的代码是:

@property (weak, nonatomic) IBOutlet UILabel *labelName;

这种行为开始发生在几天而且仅针对一个项目,所以我怀疑是我不小心改变了一些项目设置。

有关恢复XCode Interface Builder行为以生成ARC代码的任何帮助吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

我打赌你的目标是4.x对吗?在这种情况下,您不能使用弱,因此它使用unsafe_unretained。它们是相同的,除了unsafe_unretained并不会自动为你指针,但这对你的用例并不特别重要。

答案 1 :(得分:0)

您可能已关闭项目/目标设置上的ARC。 切换到Yes,您将返回Storage字段。

enter image description here