property 经常使用的是在class中的@interface 块中
@interface MyClass : NSObject
@property (nonatomic, copy) NSString *name;
@end
自动会生成一对访问器setter/getter 和一个成员变量即
// setter
-(void)setName:(NSString *)name{
}
//getter
-(NSString *)name{
}
//成员变量
_name
默认情况下setter是 set+ 熟悉名(首字母写),getter是熟悉名 成员变量是_+熟悉名
通过以下代码可以验证:
//查看所有方法和成员变量
unsigned int methodCount = 0;
Method *methods = class_copyMethodList(MyClass.class, &methodCount);
for (int i = 0; i < methodCount; i++) {
Method method = methods[i];
SEL sel = method_getName(method);
const char *methodName = sel_getName(sel);
NSLog(@"%@",[NSString stringWithUTF8String:methodName]);
}
//输出: setName: 和 name
unsigned int ivarCount = 0;
Ivar *ivars = class_copyIvarList(MyClass.class, &ivarCount);
for (int i &#