总体来说Objective-C的访问成员变量可见性和C++基本一样,只是多了个@package. 以下是详细说明:

例子:

@interface CTPerson : NSObject
{
@private
int _age;
@protected
NSString *_name;
@public
double _height;
@package
double _weight;
}
  

@private:私有的,只有在本类的对象方法中可以直接访问它

@protected:受保护的:只能在本类和子类中可以直接访问,不能在外部访问

@public:公共的,在本类,子类,外部都可以访问

@package: 主要用在框架内部,在框架内部相当于@protected,在框架外部相当于@private

补充说明: 在实现文件里面也可以定义成员变量,但是这个成员变量是私有的,无论使用什么样的可见性修饰符,修饰它,它都是私有的

例子:

@implementation CTPerson
{
@public
int _sex; //该成员变量也会被当成私有的
}
05-11 13:30