Objective c 我可以在同一类扩展中写私有属性和私有变量吗?
对Apple的Objective-C教程给出的类扩展有点困惑。据说阶级可能有自己的私有财产,比如Objective c 我可以在同一类扩展中写私有属性和私有变量吗?,objective-c,Objective C,对Apple的Objective-C教程给出的类扩展有点困惑。据说阶级可能有自己的私有财产,比如 @interface SomeClass() @property NSString* privateProperty @end 而我可以向类扩展添加所谓的自定义实例变量,如 @interface SomeClass() { NSString* instanceVar } @end 我在同一个类扩展中添加了它们,如下所示 @interface SomeClass() @property
@interface SomeClass()
@property NSString* privateProperty
@end
而我可以向类扩展添加所谓的自定义实例变量,如
@interface SomeClass()
{
NSString* instanceVar
}
@end
我在同一个类扩展中添加了它们,如下所示
@interface SomeClass()
@property NSString* privateProperty
{
NSString* instanceVar
}
@end
这会导致Xcode编译错误。我是否误解了教程?反之亦然。变量就在接口之后
@interface SomeClass () {
NSString* instanceVar
}
@property NSString* privateProperty
@end
@戴吉·德詹:你的评论毫无意义。这正是我们应该讨论的问题。那么,如果语法问题不是特定于类扩展的呢。OP提出了一个关于Objective-C编程语言的清晰的编程问题。抛开引起打盹的元讨论,实际上,
@property
声明可以被视为是大括号实例变量声明的超集的替代。如果您想学习该语言而不是它的历史,请使用@property ivar
。可以把它看作实例变量的单行声明(称为\u ivar
),可以像instance.ivar
那样使用的getter,也可以像instance.ivar=
那样使用的setter