objective-c訪问控制符

objective-c中成员变量的四个訪问控制符:

    @private:仅仅有当前类的内部才干訪问

    @public:全部人都可訪问

    @protected:仅仅限当前类和它的子类可以訪问

  @package:让那些受它控制的成员变量不仅能够在当前类中訪问。也可在同样映像的其它程序中訪问。



什么是“同一映像”?

    就是编译后生成的同一框架或同一个运行文件。

    即当前框架可以訪问,可是外部程序无法訪问。

(假设是public的话。外部程序也可以訪问)。


@private

@package

@protected

@public

同一类型

☑️✓

☑️✓

     ✓☑️

☑️✓

同一映像中


☑️✓


☑️✓

子类中



☑️✓

☑️✓

全局范围内




     ✓☑️


样例:

接口部分:(FKApple.h)

#import <Foundation/Foundation.h>

@interface FKApple:NSObject

{

    //使用@package限制成员变量

    @package

    double _weight;

}

@end

main部分:

#import "FKApple.h"

int main(int argc, char *argv[])

{

    @autoreleasepool{

        FKApple *apple = [[FKApple alloc] init];

        apple->_weight = 30.4;

    }

}

原文地址:https://www.cnblogs.com/gccbuaa/p/7074534.html