2010-08-28 49 views
2

初学者问题在这里。在客观C类的.h文件..您是否必须在.h文件中声明overriden @property方法?

  1. 如果你有一个@property int someVar;例如..你居然打算自己写setter方法在.m文件..你仍然必须在.h文件中声明setter方法?

  2. 如果您在.h文件中有一些@property声明,并且您自己在写入getter和/或setters ..您不必将它们合成它们,那么正确?如果你不综合它们,你是否必须在.h文件中声明它们,或者是否使它们的属性足够了?

回答

1
  1. 不,你不必定义它们,因为它们已经被定义。定义一个属性意味着会有一个setter方法 - 除非该属性是只读的。

  2. 只需将@synthesize替换为@dynamic并自己实施getter和setter即可。

+3

如果您自己实现setter/getter,则不需要为该属性设置“@ dynamic”。 – bbum 2010-08-28 16:35:52

+0

但你仍然需要@property还是可选的? – Ayrad 2010-08-28 17:13:39

+1

为了扩展bbum的评论,只有在运行时才会添加方法,例如,使用NSManagedObject子类(即使用CoreData时),就会发生'@ dynamic'。 如果你自己实现了setter和getter,那么你不需要'@ synthesize'或'@ dynamic'。但是你仍然需要头文件中的@属性。 – Kelan 2010-08-28 21:26:40

相关问题