至于第一部分,是的,任何的子类将继承它,只要它们是公共的超类的属性和方法。只记得综合它们来获得吸气和吸气。
所以,如果你想有一个公共属性,不能修改:
// This returns a copy - whatever the receiver does with it doesn't affect the original
@property (nonatomic, copy) BOOL someVariable;
// This declares the property as only having a getter - no setter
@property (nonatomic, readonly) NSArray *someArray;
在你的头文件中声明被认为是公开的,除非另有规定的任何属性。如果您想拥有私人性质,实例变量或方法,在课堂上延续类别声明他们在您的实现文件:
// In your .m *above* the @implementation MyClass
@interface MyClass()
@property (nonatomic, strong) NSArray *myPrivateModel;
@end
斯坦福做iTunesU一个伟大的系列讲座,我真的建议学习的ObjectiveC
希望有帮助
还要注意,您可以提供您自己的getter/setter函数,以便您不仅可以控制谁可以修改您的属性,还可以如何...例如将修改限制在有效范围内。 – mah 2013-02-14 01:11:20
@ChristopherWooden谢谢你的朋友!即时学习目前正在使用Stephen G. Kochan的“Objective C编程”学习Objective C,到目前为止我确实非常喜欢它。我虽然也许在旁边做斯坦福德课程,因为我会拥有更强大的对象。但是在书中他很奇怪,他并没有使用'(非原子,只读)'或'(非原子,复制)'。只是'@property浮点半径,直径; '... – MNY 2013-02-14 02:04:10
如果您正在合成属性,则生成的代码会受到它们是否为原子的影响。一个伟大的SO线程的主题可以找到[这里](http://stackoverflow.com/questions/588866/atomic-vs-nonatomic-properties)。 – chrysAllwood 2013-02-14 02:24:32