今天有一个初学者遇到一个问题,就是使用property的时候,同时重写set get方法会报错,如
#import <UIKit/UIKit.h> @interface ViewController : UIViewController{ } @property (nonatomic, copy) NSString *name; - (void)setName:(NSString *)name; - (NSString *)name; @end单独重写任意一个方法都不会报错,但是同时重写的话,会报错!
首先,我们声明属性的时候, 会默认给声明的属性写好setter,getter方法.
当你复写了get和set方法之后@property默认生成的@synthesize就不会起作用了,这也就意味着你的类不会自动生成出来实例变量了,你就必须要自己声明实例变量, 简而言之就是: 你同时写的话,系统没法就不会把你重写的变量当成你属性声明的变量. 当成属性如下:
这时就不会报错了。