Objective-C は初めてで、基本的には C++ のバックグラウンドを持っています。私は今、objective-c を学んでおり、私が理解したことが書いているか間違っているかを確認したいと思います。親切なアドバイス。
私は次のクラスを持っています:
@interface Test: NSObject
{
int instance1;
}
@property int instance1;
- (void) sayHello;
@end
クラス 'Test' にはインスタンス変数 がありますinstance1
。メンバー関数 ie: sayHello が変数にアクセスしたい場合は、getter/setter 関数を介して行う必要があります。したがって、それを取得するには2つの方法があります。
- ユーザーが定義できます。
- コンパイラからヘルプを得ることができますか?. どのように?。同じ変数をプロパティとして宣言し、それを合成すると、コンパイラはその特定の変数の getter/setter のコードを取得します。
したがって、残念なことに、getter/setter はメソッド実装で変数にアクセスする唯一の方法です。ゲッター/セッターが必要self.instance1 = 100;
です。instance1 = 100
1. と 2. の両方を見逃しているため、instance1
変数にアクセスする方法はありません。
また、instance1
パブリック変数は、オブジェクト インスタンスを使用してクラスの外部にアクセスできます。
Test *t = [[ Test alloc] init];
t.instance1 = 200;
質問:
instance1
クラス外のインスタンス変数にアクセスできないように、「プライベート」にする方法はありますか?- 私の理解に何か問題がありますか?