@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 64位机器类和实例变量访问控制
更多信息可以查看:
Objective-C中@private、@protected、@public 解析