Cocoa touch ARC中的出口和寿命限定符

Cocoa touch ARC中的出口和寿命限定符,cocoa-touch,automatic-ref-counting,Cocoa Touch,Automatic Ref Counting,模板“MasterDetail”应用程序使用strong限定符在DetailViewController.h中写入IBOutlet属性 @property (strong, nonatomic) IBOutlet UILabel *detailDescriptionLabel; 在Standford CS193的iTunesU课程(第2课时间14:30)中,他们将IBOutlet设置为weak,表示标签已经有一个由window创建的指向它的强指针 现在,我的问题是我们如何声明IBOutlet

模板“MasterDetail”应用程序使用
strong
限定符在DetailViewController.h中写入
IBOutlet
属性

@property (strong, nonatomic) IBOutlet UILabel *detailDescriptionLabel; 
在Standford CS193的iTunesU课程(第2课时间14:30)中,他们将
IBOutlet
设置为
weak
,表示标签已经有一个由window创建的指向它的强指针

现在,我的问题是我们如何声明IBOutlet的存储,比如标签和按钮?使用“弱”是正确的吗?如果我在iOS4上,可以使用unrepaired吗

编辑------

我找到了关于强弱的答案。。。主要规则是:

  • 对xib的顶级元素使用
    strong
  • 对标签按钮等子元素使用
您可以查看

但是我仍然找不到关于iOS 4的一些东西,好吧,基本上与MRC中的情况相同

IBoutlet通常位于控制器的视图层次结构中,并由其父视图隐式保留。您可以使用
分配
(MRC)或
不安全(ARC)。在所有情况下,从视图层次中删除对象时,指针都将无效。
唯一的区别是,在MRC和ARC 4.0上,指针不会自动设置为零。它仍然包含内存地址,但该地址无效。
在任何情况下,都不应该再使用指针

每当您想要使用对象时,即使它不是视图层次结构的一部分(通常是xib中的每个顶级元素,或者当您动态地从层次结构中删除视图并且不希望视图无效时),也可以使用
retain
strong
说明符

请注意,许多示例对每个iboutlet都使用
strong
,这并不是一个错误。只是没必要