0

私はAppleDeveloperチュートリアルを行っていますが、下部のコード行についていくつかの基本的な質問があります。

  1. これらのコード行のいずれも、それらが作成するオブジェクトを割り当てて初期化しませんか?これは、オブジェクトの作成時に値が割り当てられているためですか?

  2. dequeueReusableCellWithIdentifierメソッド-このメソッドがnilを返す唯一の方法は、セル識別子パラメーターと同じ名前のセルオブジェクトがない場合です。再利用できるセルがプールになかった場合、セルを作成するか、nilを返しますか?ドキュメントには、メソッドが次を返すと記載されています-関連付けられた識別子を持つUITableViewCellオブジェクト、またはそのようなオブジェクトが再利用可能セルキューに存在しない場合はnil。

助けてくれてありがとう

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

BirdSighting *sightingAtIndex = [self.dataController objectInListAtIndex:indexPath.row];
4

1 に答える 1

1

コメントから...

投稿したコード行は実際には何も作成しません。他の場所で作成されたものへの参照を取得します。他の何か(コードまたはフレームワークコード)は、すでにalloc / initを使用してそれらをインスタンス化し、現在アクセスを許可しています。

テーブルビューの例では、クラス/ペン先をテーブルビューに登録すると、セルが作成されます。dequeueReusableCellWithIdentifier:そうでない場合は、を返すときに作成しますnil。いずれにせよ、nil以外を返す場合、それは、プログラムがその時点にある場所以外の場所で作成されたオブジェクトです。

(self.dataControllerは私が認識しているものではありませんが、同じロジックを適用する必要があります...そのリストには以前に行ったものが事前に入力されているか、要求に応じて生成されて提​​供されます。)

于 2012-12-13T20:00:00.973 に答える