.@property+@synthesize 与 @property增强 1.@property+@synthesize搭配使用,@property生成实例变量的setter和getter方法声明,而@synthesize在.m中生成方法实现.@synthesize在生成实例变量时会检查原有实例变量中是否有与方法名同名的实例,如果有则使用该实例变量,若无,则自己在.m文件中生成与方法名同名的实例变量.这种用法只在Xcode4.4之前
2.@property增强:Xcode4.4之后,单独在.h文件中用@property会自动生成对应的setter和getter方法的声明和实现.首先会检查原声明实例变量中是否有带'_'前缀与方法名同名的实例,如果有则使用该实例,如果没有,则在.m文件中生成一个方法名带'_'前缀的实例变量
3.不论@property是否搭配@synthesize使用,生成的实例变量都在.m文件中,属于私有变量,子类和类外部无法访问,只能通过点语法(实质是setter和getter方法)来访问
4.可以重写@property生成的setter或getter方法,但是不要都重写
|