iOS 关键词@package, @private, @protected, @public

@package是一个新的实例变量保护类, 像@public@protected. @package实例变量有如下特性:

•   @public in 32-bit;
•   @public in 64-bit, 定义类framework之内.
•   @private in 64-bit, 定义类的framework之外.

在 64位机器上, 用@package标记的成员变量不会被导出到外部, 所以任何试图在这个framework外面访问这些成员变量的类都会得到一个链接错误的结果.

Objective-C中,类的实例化变量的范围有@private、@protected、@public。他们代表的意思和C++中相同,只是前面添加了一个@符号。下面介绍一下他们代表的范围:
指令
意思

@private 作用范围只能在自身类
@protected 作用范围在自身类和继承自己的子类,什么都不写,默认是此属性。
@public 作用范围最大,在任何地方

下面是官方的图:

《iOS 关键词@package, @private, @protected, @public》 图片.png

具体的可以参考:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocDefiningClasses.html#//apple_ref/doc/uid/TP30001163-CH12-SW1

参考:
iOS 64位机器类和实例变量访问控制
更多信息可以查看:
Objective-C中@private、@protected、@public 解析

    原文作者:填坑侠
    原文地址: https://www.jianshu.com/p/25a40883d9eb
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞