質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Q&A

解決済

1回答

4266閲覧

UITableViewのdequeueReusableCellWithIdentifier:の違いについて

usagi001

総合スコア208

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

0グッド

0クリップ

投稿2017/01/19 19:06

Objective-CでUItableViewのCellを生成する際に、dequeueReusableCellWithIdentifier:とdequeueReusableCellWithIdentifier:forIndexPath:という2種類のメソッドがありますが、この2つにはどのような違いがあるのでしょうか?
iOS6以降はdequeueReusableCellWithIdentifier:forIndexPath:を使えばいいと思っていたのですが、今(Xcode8.1)でもdequeueReusableCellWithIdentifier:のメソッドがdeprecatedなわけではなく普通に使えるので、何かdequeueReusableCellWithIdentifier:を使った方がいい場合があるのでしょうか?
以上、宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Objective-CでUItableViewのCellを生成する際に、dequeueReusableCellWithIdentifier:とdequeueReusableCellWithIdentifier:forIndexPath:という2種類のメソッドがありますが、この2つにはどのような違いがあるのでしょうか?

この2つの違いについては以下の説明が参考になります。
iOS6 UITableViewのセルの再利用の方法が変わった
UITableViewのセルの使いまわしについて

dequeueReusableCellWithIdentifier:は使いまわせるセルがない場合はnilを返却(自分で新しいセルを生成する)し、dequeueReusableCellWithIdentifier:forIndexPath:はなければ新しく生成したセルを返却します。

(Xcode8.1)でもdequeueReusableCellWithIdentifier:のメソッドがdeprecatedなわけではなく普通に使えるので、何かdequeueReusableCellWithIdentifier:を使った方がいい場合があるのでしょうか?

特にないと思います。

投稿2017/01/19 23:40

編集2017/01/20 00:25
_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

usagi001

2017/01/22 01:07

回答ありがとうございます。 カスタムセルを使うならnilを返さないdequeueReusableCellWithIdentifier:forIndexPath:のメソッドを利用するということですね。
_Kentarou

2017/01/22 01:12 編集

カスタムセルに限った話では無いです、dequeueReusableCellWithIdentifier:forIndexPath:を使っていれば自分でセルを生成するコードを書かなくてよくなるということです。
usagi001

2017/01/22 01:43

何度もすみません。 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (!cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier]; } // Configure the cell... return cell; } dequeueReusableCellWithIdentifier:を利用する場面は、こういう風にコードでデフォルトセルのstyleを設定したい場合くらいでしょうか?
_Kentarou

2017/01/22 01:54

コードで記述する場合はそうなりますね、Storyboard,xibを使用していればそちらで設定できるのでdequeueReusableCellWithIdentifier:は使わなくて大丈夫だと思います。
usagi001

2017/01/22 02:29

回答ありごとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問