1

類推すると、Eclipse IDE や他の多くの環境では、クラスのプライベート属性を宣言すると、ゲッター メソッドとセッター メソッドを自動的に生成できます。たとえば、約 20 の属性で宣言すると非常に便利で、最終的にすべてのメソッドが作成されます。

xCode IDE で同じ機能を使用できますか?つまり、「.h」でいくつかの宣言メソッドをコーディングしているときに、「.m」で自動的に宣言できますか ....

例えば:

「.h」のコードは次のとおりです。

- (NSString *)loadMessageLabelFr:(id)sender;

「.m」では、メニュー機能で生成された「望ましい」コード:

- (NSString *)loadMessageLabelFr:(id)sender{

}
4

3 に答える 3

3

ゲッターとセッターは、クラス プロパティのコンパイラによって暗黙的に生成されます。例:持つ

@property int count;

暗黙的に次のことを提供します。

1)_countプロパティの値を格納する という名前の ivar。

2) ゲッターとセッター

- (int)count
{
    return _count;
}

- (void)setCount:(int)count
{
    _count = count;
}

このコードはコンパイル時に挿入されるため、.m ファイルには表示されません。このようにして、コードが些細なゲッターやセッターによって乱雑にならないようになるので、これは素晴らしいことです。値を設定または返すだけでなく、getter または setter に別のことをさせたい場合は、通常の方法でメソッドを定義する必要があります。

- (void)setCount:(int)count
{
    NSLog(@"Count set to %d", count);
    _count = count;
}
于 2013-04-12T16:55:49.297 に答える
1

私はあなたの言いたいことを知っています - 何度も、ヘッダーで 10 個のメソッドを宣言した後、何らかの方法でそれらを実装ファイルに転送したかったのです。

でも...

これは Java ではありません。オブジェクトとファイルの編成はまったく異なります。

  1. メソッドを定義する必要はありませんが、これは有効なユース ケースです。特定のメソッド定義を持たず、メソッド呼び出しを処理するクラスがあります。doesNotRecognizeSelector:

  2. 実行時にメソッド定義を追加できます

  3. 複数の実装ファイルで 1 つのヘッダーからメソッドを定義できます。

これらの理由 (およびその他の多くの理由) により、実装ファイルでメソッド ヘッダーを生成することには、長所よりも短所が多くなる可能性があります。

最も単純な Xcode ソリューションは次のとおりです。

  1. メソッド ヘッダーを から にコピー アンド ペースト.h.mます。
  2. オートコンプリートを使用して、ヘッダーの先頭を記述します。たとえば、- (BOOL)オートコンプリートを高速化できます。
于 2013-04-12T17:51:03.900 に答える