Objective-C中的成员变量有如下三种属性函数
默认状况下,是protected属性spa
例子:类A有3个属性,类B是类A的子类,main函数对于类A来讲是外部。code
A.hblog
@interface A : NSObject { @public int publicVar; @protected int protectedVar; @private int privateVar; } @end
main.mit
int main(int argc, const char * argv[]) { @autoreleasepool { A *a = [[A alloc] init]; a->publicVar = 1; //OK a->protectedVar = 2; //Error 编译不过 a->privateVar = 3; //Error 编译不过 } return 0; }
B.mio
@implementation B - (void)f { B *b = [[B alloc] init]; b->publicVar = 1; //OK b->protectedVar = 2; //OK b->privateVar = 3; //Error 编译不过 } @end
注意,这里访问的方式用的是【->】而不是【.】哦哦哦哦编译