Sun*_*day 5 properties objective-c nonatomic
以下Objective-c 2.0代码段之间有何不同(如果有):
// in MyClass.h
@interface MyClass
@private
NSString *myString;
@end
Run Code Online (Sandbox Code Playgroud)
和
// in MyClass.m
@interface MyClass ()
@property (nonatomic, copy) NSString *myString;
@end
@implementation MyClass
@synthesize myString;
@end
Run Code Online (Sandbox Code Playgroud)
ivar(第一个)是一个普通变量,不能在其创建的接口的实现范围之外访问(如果使用了@private指令)并且没有合成的访问器方法.
属性(第二个)是一个包装的ivar,可以通过实例化一个类来访问,并且具有合成的访问器方法(如果正在使用@synthesize指令)
MyClass *class = [[MyClass alloc] init];
[class setMyString:@"someString"]; //generated setter
NSString *classString = [class myString]; //generated getter
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
464 次 |
| 最近记录: |