例如,我在接口括号{}
中声明了一个对象,如:
@interface testViewController : UIViewController {
IBOutlet UILabel * myLabel;
}
@property (retain, nonatomic) UILabel *myLabel;
@end
和示例二,我声明了一个在曲面括号{}
之外的对象,如:
@interface testViewController : UIViewController {
}
@property (retain, nonatomic) IBOutlet UILabel *myLabel;
@end
我运行代码并且结果是一样的,所以我想问一下在接口括号{}
内部或外部的对象decalare有什么不同?
由于
答案 0 :(得分:1)
现代Objective-C运行时(64位Mac OS X和iOS)将在您@synthesize
时为您声明的属性生成后备存储。所以你不需要在大括号内声明它们。
如果您声明的iVar不是属性且仅由类使用,则需要声明它们。标记这些@private
例如
@interface MyClass : NSObject {
@private
NSString *privateString;
}
@property (nonatomic, copy) NSString *publicString; // be sure to @synthesize this
@end
答案 1 :(得分:0)
在第二个示例中,您只声明一个属性。 Xcode会自动声明对象。