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;
}
}
时间: 2024-10-09 05:51:21