質問

私は集まるObjective-C Iの旨を申告しなければなインスタンス変数の一環として、インターフェースのクラスの場合でもこれらの変数は実施内容やプライベートアクセス。

の"自覚"C,Iを付与することも可能で、変動するcファイルでは見えないその日の作成ユニットです。Iを付与することも可能ですの対応です。hファイルとしてもリンクを作成ユニットで可変となります。

かりがある場合は同等の選択的合っていれば確かにする宣言"を発することを決議ivar。h私のクラスです。

Ari.

役に立ちましたか?

解決

Ari,

参考にどうやって達成するかを"見えない"インスタンス変数の宣言できる のんびりし 信用慮されたマットGallagher.

希望です フランク

他のヒント

インスタンス変数は、伝統的に、クラスのサイズを決定するために必要されています。それは、常に直接アイバーズにアクセスするために貧しい人々の練習をされている、それはポイントではありません。現代のランタイムでは、これはあまり必要であるが、いずれにせよ、それはあなたが@protectedまたは@private、右のようにそれらを宣言しているので、不可能である必要があり、クライアントがクラスのアイバーズに依存している場合を除き抽象リークは、ないですか?

アクセスを制限に利用できます @private または @protected キーワード:

@interface Foo : NSObject {
    @private
    int barPrivate;

    @protected
    int barProtected;

    @public
    int barPublic;
}
@end

編集: 傷もがっぽい大人な雰囲気があります。

( - あなた@protectedとすることができ、常にアクセスアイバーズ@private@protectedは、他のクラスがそれらにアクセスすることができないという保証はありませんが)

アイバーズは、デフォルトではgetValue:forKey:です。 「選択肢は」(あなただけに直接アクセスしませアイバーズに大会を下記のすべてのクラスに依存する必要が)プロパティとしてアイバーズを公開するかどうかではない - あなたはどのような場合でも、直接他のクラスから直接アクセス決してアイバーズをする必要があります。

には、Objective-Cのランタイム、あなたはそれらが実行時に合成されたが、残念ながらiPhoneシミュレーターで作業しないことをすることができますので、今のところそう、すべてでアイバーズを宣言する必要はありません、それだけに最高の新機能.hファイル内のすべてのアイバーズを宣言します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top