就我所了解的情况,@property 在.h文件中声明getter和setter方法,而@synthesize 在.m文件中实现这些方法。此外,你还可以编写自己的getter和setter方法来替代使用@synthesize。
既然我们总是需要实现setter/getter方法,为什么还需要额外声明呢?在我的看法中,@property 似乎是语义上的冗余,也是产生错误的源头。
如果我声明了一个@property,但忘记用@synthesize或手动实现它,会发生什么?如果我使用@synthesize却忘记了@property声明,会发生什么呢?
既然我们总是需要实现setter/getter方法,为什么还需要额外声明呢?在我的看法中,@property 似乎是语义上的冗余,也是产生错误的源头。
如果我声明了一个@property,但忘记用@synthesize或手动实现它,会发生什么?如果我使用@synthesize却忘记了@property声明,会发生什么呢?
@synthesize delegate = _mydelegate;
来解决这个问题。 - lolol