2011-01-23 12 views
2

UITableViewでセルを設定する場合は、if文またはswitch文を一般的なプラクティスとして使用するのが最善でしょうか?cellForRowAtIndexPathのif文またはswitch文を使用するのが最善の方法ですか? - UITableView

ここでは、一般的なプログラミングの質問としてではなく、ここではcellForRowAtIndexPathと他のUITableViewメソッドについて具体的に話しています。

+0

なぜこれが「一般的な練習」と異なるのですか? –

+0

私は知らない、それは私が求めているものです。私はそれが重要かどうか私に教えてくれる人からの答えがほしいです。 –

答えて

7

私はパフォーマンスが心配だから、私はおそらくこのようにします............ しかし、待って:現代のコンパイラ、非常に簡単に、彼らが望む方法を "引き継ぎ"最適化/コンパイルします。だから私の意見では、それは本当にと深く違いはありません

、その理由のために:

あなたは現代のコンパイラは何をしているか見当もつかないので、それはそれを一つの方法または他の方法を書くことを心配無意味だ

私は複雑な現代のスイッチではなく、純粋に文体的なものとして、そして昔ながらのために旗を振るのが好きです。

あなたはおそらく次のように言うことができます:各パス上で可能な限り早くルーチンから "復帰"しようとするので、最後に無駄にトラバースしません。このようなことで眠りを失う、それは大きな問題です。

ワンポイント .. iOSのプログラミングで物事に他の人がそれら行うのと同じ方法でやってで非常に大きな価値があります。私はその事実が嫌いですが、それは本当です!だから、手元の特定の質問で、あなたがアップルのイディオムを拾うことができるなら、それは確かにそのようにしてください。

+0

ありがとうございました!私はあなたがこのウェブサイトで読んだ質問に最高の答えを与えたと思います。 –

3

何も違いはありません。

提供されているUITableViewインスタンスのdequeueReusableCellWithIdentifierメソッドを使用して、互換性のあるセルを試して再利用するようにしてください。ただし、有効なUITableViewCellを返すだけで済みます。無関係。

これは少しアドバイスとして、私はユーザーインターフェイスが応答性を保つことを確実にするためにできるだけ軽いものを保つようにしています。 (つまり、このメソッド内で複雑なデータ構造を調べたり、前もってすべてを行い、単にcellForRowAtIndexPath内の関連するデータソースから結果を取得しないでください)。

1

おそらく、それぞれの方法には数多くの理由がありますが、他にも多くのソリューションがあります。

要素数が(列挙されている)固定数を設定する場合は、列挙型に名前を付けてswitch文を使用します。それは非常に構造化されており、簡単に読めるようになっています。いくつかのコンパイラ設定では、ケースが見つからない場合に警告が表示されます。

オープン/無制限/あまり構造的でない選択の場合、の場合はを使用してください。場合によっては、複数のセルが同じコードブロックから取得され、ヘルパーオブジェクトが使用されることもあります。

すべてのコードと同じように、シンプルで読みやすく、保守が容易です。 の場合またはスイッチは、ここではパフォーマンスに重要な決定ではありません。

関連する問題