iOS7中“主”视图下的元素的哪个存储(弱或强)

iOS7中“主”视图下的元素的哪个存储(弱或强),ios,objective-c,iphone,weak-references,strong-references,Ios,Objective C,Iphone,Weak References,Strong References,在阅读了很多关于iOS编程的书籍和文档之后,我仍然很困惑——当控件从主视图下的UI元素拖动时,选择哪种存储类型是弱的还是强的?对于main,我想我指的是分配给ViewController的view属性的UIView: 例如,我试图用Xcode 5.0.2和iOS7重新创建Jeroen van Rijn先生的示例 他的代码缺少弱/强说明符,我想知道这里哪一个是正确的 #import <UIKit/UIKit.h> @interface ContactViewController : U

在阅读了很多关于iOS编程的书籍和文档之后,我仍然很困惑——当控件从主视图下的UI元素拖动时,选择哪种存储类型是弱的还是强的?对于main,我想我指的是分配给ViewController的view属性的UIView:

例如,我试图用Xcode 5.0.2和iOS7重新创建Jeroen van Rijn先生的示例

他的代码缺少弱/强说明符,我想知道这里哪一个是正确的

#import <UIKit/UIKit.h>
@interface ContactViewController : UIViewController {
    IBOutlet UIImageView *contactImageView;
    IBOutlet UITextField *firstNameTextField;
    IBOutlet UITextField *lastNameTextField;
    IBOutlet UITextField *ageTextField;
}
- (IBAction)save:(id)sender;
- (IBAction)chooseImage:(id)sender;
@end

由于该视图已由创建它们的视图保留(您在interface builder中设置的视图),因此无需再次保留它们,因此您必须选择“弱”,而不是“强”。

在本例中,视图不需要插座。您可以通过以下方式访问它:

self.view
在您的ContactViewController或类似设备中:

ContactViewController *contact = [[ContactViewController alloc] init];
contact.view
从其他视图控制器。
但是,对于您的插座,您应该将其定义为弱。

IBOutlets应定义为弱,因为它们将由创建它们的视图保留。您的ViewController只需要引用,而不需要再次保留它们。Hanks,太糟糕了,当我在助手模式下控制拖动时,Xcode 5建议使用strong。