大约两个月以来,我一直在攀登 X-code 的学习曲线。我了解@property/@synthesize 指令的用途,但总是在.h 文件中声明属性,然后在.m 文件中合成它们似乎有点多余。
为什么编译器需要这两个指令?如果它们总是一起使用,它们中的一个在技术上不是多余的吗?
提前感谢您对此主题的任何见解。
约翰·多纳
大约两个月以来,我一直在攀登 X-code 的学习曲线。我了解@property/@synthesize 指令的用途,但总是在.h 文件中声明属性,然后在.m 文件中合成它们似乎有点多余。
为什么编译器需要这两个指令?如果它们总是一起使用,它们中的一个在技术上不是多余的吗?
提前感谢您对此主题的任何见解。
约翰·多纳
@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 中的属性背后实际上有更多的魔力,请在 Apple Reference Library 中阅读它们。
这样您就可以拆分实现和声明。对我来说似乎很整洁。
好吧,您不能@synthesize
在类别实现中使用,所以这可能是原因之一。