0

iOS用のObjective-Cを学ぼうとしています。私はこれを調査しようとしましたが、正しいキーワードを使用してはいけません。

Label1、Label2などの単純な名前のラベルがいくつかあります。また、Label#が変更されていることを除いて、基本的に同じように見えるコードがたくさんあります。1つのメソッドを作成してその番号を渡し、アプリを大幅に縮小することはできますか?

4

2 に答える 2

1

これらのオブジェクトをNSArrayまたは別のタイプのコレクションに含めることをお勧めします。次に、コンテンツをループして、各要素に対して同じ操作を実行できるようになります。

于 2013-02-24T17:07:43.517 に答える
0

これらのラベルの共有動作を抽象化する新しいクラスCisonLabelを定義することを検討してください。CisonLabelは、コントロールとそれに関連するデータを保持します。だからあなたは言うだろう

  CisonLabel *label1=[CisonLabel for: self.labelControl1 withIdentifier: 1];
  CisonLabel *label2=[CisonLabel for: self.labelControl2 withIdentifier: 2];

CisonLabelには次のようなメソッドがあります。

 - (void) update;  // sets the label text, based on the identifier

DRiisが示唆しているように、すべてのCisonLabelをコレクションに収集できます。おそらくNSArrayです。

 - (void) updateLabels: (NSArray*) theLabels
 {
     for(CisonLabel *label in theLabels) [label update]; 
 }

あなたの本能は健全です。共有された行動をクラスに抽象化し、自分自身を繰り返さないようにします。

于 2013-02-24T17:32:09.177 に答える