objective-c訪问控制符

Posted gccbuaa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

    }

}

以上是关于objective-c訪问控制符的主要内容,如果未能解决你的问题,请参考以下文章

Objective-C中的@Property具体解释

[学习笔记—Objective-C]《Objective-C-基础教程 第2版》第十一章 属性

Objective-C基础笔记@property和@synthesize

objective-c中#import和@class的差别

iOS开发之Objective-C书签管理器项目

Objective-C——属性与成员变量辨析