Objective-C他のクラスからの@privateインスタンス変数へのアクセス

私はこの質問を見て、次のコードを見つけました答えの1つに

@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

2 答え

ほとんどの動的言語と同じように、この情報をObjective Cで得ることができますが、それは苦痛です。 ここで例をご覧ください

4
追加された
@ darvids0n私はあなたがすべきかどうかは疑問ではない、それはかなり明白です、私はあなたができるかどうか疑問に思っています。
追加された 著者 Aran Mulholland,
あなたはできますが、は許可しません。それが @private と宣言されているのであれば、それは通常正当な理由があります。
追加された 著者 darvids0n,

いいえ、それはまさに @private が意味することです。コンパイラは他のクラス(サブクラスさえも)がそのivarにアクセスすることを明示的に禁止します。

@public means anyone can access the ivar, and @protected means subclasses can access it but other classes can't.

0
追加された