我一直在关注this question并在其中一个答案中遇到以下代码
@interface MyClass : NSObject
{
@private
int someVar; // Can only be accessed by instances of MyClass
@public
int aPublicVar; // Can be accessed by any object
}
@end
无论如何从任何其他类(包括派生类)访问someVar
?
答案 0 :(得分:4)
与大多数动态语言一样,您可以在Objective C中获取此信息,但这很痛苦。 Look here for an example
答案 1 :(得分:0)
没有。这正是@private
的含义。编译器明确禁止任何其他类(甚至是子类)访问该ivar。
@public
表示任何人都可以访问ivar,@protected
表示子类可以访问它,但其他类不能访问它。