私は個人的に、オブジェクト参照スコープが必要な場合は、クラスの外でプロパティ宣言を行うことを好みます。それ以外の場合は、クラスブラケット内のインスタンス変数として宣言し、実装ファイル内で宣言します。(この変数機能をさらに継承しない場合)
それで、
- クラスの外部で変数インスタンスにアクセスする必要がある場合は、プロパティを宣言します。MyClassViewController.hヘッダーファイル内
@property (strong, nonatomic) IBOutlet NSTextField *myTextField;
したがって、他のクラスでは、次の方法でこれにアクセスできます。
MyClassViewController *myClassViewController = [[MyClassViewController alloc] init];
[myClassViewController.myTextField setText:@"MyValue"];
また、次のような値を取得します
NSLog(@"%@", [myClassViewController.myTextField text]);
これで、ViewControllerクラスを継承する別のクラスがある場合、このプロパティは、アクセス指定子に従ってChildViewControllerに継承されます。
- 完全に非表示のプロパティまたは変数が必要な場合。そのクラス自体の外部で使用されていないように、プライベートカテゴリ自体の実装ファイル(.m)で宣言できます。ViewController.mファイル:
@interface ViewController () {
NSString *myString;
}
したがって、これは.mファイルでのみ表示され、他の場所では表示されません。
現在の宣言@property
-setter-getterのデフォルトメソッド(setMyStringなど)が必要な場合にのみ、これを宣言する必要があります。これは、そのインスタンスの可視性要件に応じて、.hと.mの両方で宣言することもできます。
今、あなたがコンセプトを手に入れていることを願っています。そのすべては可視性についてです。