Objective-C 从另一个类访问 @private 实例变量
Posted
技术标签:
【中文标题】Objective-C 从另一个类访问 @private 实例变量【英文标题】:Objective-C Access @private instance variables from another class 【发布时间】:2012-01-23 05:26:42 【问题描述】:我一直在查看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
?
【问题讨论】:
【参考方案1】:没有。这正是@private
的意思。编译器明确禁止任何其他类(甚至是子类)访问该 ivar。
@public
表示任何人都可以访问 ivar,@protected
表示子类可以访问它,但其他类不能。
【讨论】:
【参考方案2】:与大多数动态语言一样,您可以在 Objective C 中获得这些信息,但是,这很痛苦。 Look here for an example.
【讨论】:
你可以,但你不应该。如果它被声明为@private
,通常是有充分理由的。
@darvids0n 我不是在质疑你是否应该这样做,这很明显,我只是想知道你是否可以。以上是关于Objective-C 从另一个类访问 @private 实例变量的主要内容,如果未能解决你的问题,请参考以下文章