说明:
self.xx是调用的xx属性的get/set方法,而_xx则只是使用成员变量_xx,并不会调用get/set方法
注意:
最容易出问题的地方就是对属性xx或成员变量_xx的初始化的地方和调用时机,直接通过例子来看
举例:
Person.h文件
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property(nonatomic,strong)NSString *name;
-(void)SetValue;
@end
Person.m文件(采用self.xx方式引用)
#import "Person.h"
@implementation Person
-(void)SetValue{
NSLog(@"name=%@",self.name);
}
- (NSString *)name{
return @"Jack";
}
@end
打印结果: name=Jack
Person.m文件(采用_xx方式引用)
#import "Person.h"
@implementation Person
-(void)SetValue{
NSLog(@"name=%@",_name);
}
- (NSString *)name{
return @"Jack";
}
@end
打印结果: name=(null)