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

对Apple的Objective-C教程给出的类扩展有点困惑。据说阶级可能有自己的私有财产,比如

@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