我一直在攀登X-code的学习曲线大约两个月了。我理解@ property / @ synthesize指令的用途,但似乎总是在.h文件中声明属性,然后在.m文件中合成它们有点多余。
为什么编译器需要两个指令?如果它们总是一起使用,那么它们中的其中一个在技术上是多余的吗?
提前感谢您对此主题的任何见解。
John Doner
答案 0 :(得分:3)
在您的类定义中使用@property (...) foo
关键字。
如果您提供适当的@synthesize
,则无需在实施文件中使用getters/setters
关键字。
示例:
@property int SomeInt;
---
-(int)SomeInt {
return _someInt;
}
-(void)setSomeInt:(int)newValue {
_someInt = newValue;
}
或者您可以使用@synthesize foo
通知编译器为您生成getters/setters
或@dynamic
通知编译器这些方法在运行时可用 - 都在实现文件中
Objective-C中的属性背后有更多魔力,read up on them at Apple Reference Library。
答案 1 :(得分:1)
这样你就可以分割实现和声明。看起来很漂亮。
答案 2 :(得分:0)
嗯,你不能在类别实现中使用@synthesize
,所以这可能是一个原因。