Objective-C 成员变量

成员变量的访问权限

Objective-C中的成员变量有以下三种属性

  • public(外部及其子类可访问)
  • protected(子类可访问,外部不可访问)
  • private(外部及其子类不可访问)

默认情况下,是protected属性

例子:类A有3个属性,类B是类A的子类,main函数对于类A来说是外部。

A.h

@interface A : NSObject
{
@public
    int publicVar;
@protected
    int protectedVar;
@private
    int privateVar;
}
@end

main.m

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.m

@implementation B
- (void)f
{
    B *b = [[B alloc] init];
    b->publicVar = 1;       //OK
    b->protectedVar = 2;    //OK
    b->privateVar = 3;      //Error 编译不过
}
@end

注意,这里访问的方式用的是【->】而不是【.】哦哦哦哦

原文地址:https://www.cnblogs.com/chenyg32/p/4803684.html