Objective-C从另一个类访问@private实例变量

时间:2011-12-18 22:20:33

标签: objective-c access-modifiers private-members

我一直在关注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

2 个答案:

答案 0 :(得分:4)

与大多数动态语言一样,您可以在Objective C中获取此信息,但这很痛苦。 Look here for an example

答案 1 :(得分:0)

没有。这正是@private的含义。编译器明确禁止任何其他类(甚至是子类)访问该ivar。

@public表示任何人都可以访问ivar,@protected表示子类可以访问它,但其他类不能访问它。