为什么编译器要求实例变量访问类扩展中的属性访问权限?

时间:2017-05-25 15:25:24

标签: objective-c xcode

Xcode中的编译器要求我对类扩展

中声明的属性使用实例变量名
@interface Person ()
@property NSString *bar
@end

@implementation Person 
 -(void) foo {
     NSString *foo = _bar; // underscore required here
 }
@end

在上面的代码示例中,为什么我不能在没有下划线的情况下访问bar?

1 个答案:

答案 0 :(得分:0)

您可以bar作为self.bar访问,并且比_bar更受欢迎。 _bar可用于遗留代码。

看起来你来自Swift的Objective-C,编译器会自动为你添加self.