我的大多数视图控制器都有几个插座,我总是将它们与头文件中的属性链接起来,如下所示:
IBOutlet UIButton *homeButton;
@property (nonatomic, retain) IBOutlet UIButton *homeButton;
我应该在这里使用assign,因为我假设NIB正在处理内存吗?
答案 0 :(得分:8)
创建nib文件中的对象 保留计数为1然后 自动释放。因为它重建了 然而,对象层次结构,UIKit 重新建立之间的联系 使用setValue的对象:forKey: 方法,它使用可用的 setter方法或保留对象 如果没有setter方法,则为default 可用。 如果您为其定义商店 nib-file对象,你应该总是这样 定义一个setter方法(或声明 访问该出口。 出口的塞特方法应该 保留他们的价值观和设定者 包含出口的方法 顶级对象必须保留它们 价值,以防止他们 取消分配。如果你不存储 你必须在网点的顶级对象 保留返回的数组 loadNibNamed:owner:options:方法 或者数组中的对象 防止这些物体 过早释放。
在那里你可以找到有关如何从nib文件加载对象的更多细节,但简而言之 - 不,你必须使用IBOutlets的保留属性。
答案 1 :(得分:-2)
您只需在delloc
中释放iboutlets对象