2

大约两个月以来,我一直在攀登 X-code 的学习曲线。我了解@property/@synthesize 指令的用途,但总是在.h 文件中声明属性,然后在.m 文件中合成它们似乎有点多余。

为什么编译器需要这两个指令?如果它们总是一起使用,它们中的一个在技术上不是多余的吗?

提前感谢您对此主题的任何见解。

约翰·多纳

4

3 回答 3

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 中的属性背后实际上有更多的魔力,请在 Apple Reference Library 中阅读它们

于 2009-11-19T04:50:43.660 回答
1

这样您就可以拆分实现和声明。对我来说似乎很整洁。

于 2009-11-19T04:46:42.057 回答
0

好吧,您不能@synthesize在类别实现中使用,所以这可能是原因之一。

于 2009-11-19T04:41:05.647 回答