[解決済み] データソースからのセルの取得に失敗しました。
2022-02-08 04:09:57
質問
以下のコードのどこが問題なのでしょうか?
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell.textLabel.text = @"hello";
return cell;
}
そして
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return 2;
}
と表示されるのですが データソースからセルを取得できませんでした。
例外の全体は
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView (<UITableView: 0x7ffe0b092800; frame = (0 97; 414 590); clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x7ffe0acf3b10>; layer = <CALayer: 0x7ffe0aceb6e0>; contentOffset: {0, 0}; contentSize: {414, 88}>) failed to obtain a cell from its dataSource (<AllContactsViewController: 0x7ffe0ace60f0>)'
テーブルビューのデリゲートとデータソースを設定しました。
どうすればいいですか?
あなたのエラーは、以下のことを示唆しています。
cellForRowAtIndexPath
が返されます。
nil
これは、再利用可能なセルをデキューするのに失敗しているからだと思われます。もし確認したいのであれば、現在のdequeue呼び出しの後にブレークポイントを設定すればよいでしょう。次のようなものが見つかると思います。
cell
に設定されています。
nil
.
もし、プロトタイプセルを作ってもらうような最新のXcodeテンプレートを使っているなら、おそらくこれを代わりに使うべきでしょう。
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
Xcodeのテンプレートを使っていない場合は、この行をとにかく使って、次のように独自の再利用識別子を登録してください。
[self.tableView registerClass:[UITableViewCell self] forCellReuseIdentifier:@"Cell"];
これで問題は解決したはずです。 Swiftユーザー向けに詳しく書きました。
関連
-
[解決済み】Xcode - 'NSUnknownKeyException', reason: ... this class is not key value coding-compliant for the key X" エラーの修正方法とは?
-
[解決済み] ウィンドウ階層にないビューを持つUIViewControllerでUIViewControllerを表示しようとする
-
[解決済み] Swiftエラー。変数がそれ自身の初期値内で使用されている
-
[解決済み] Xcodeのロギング。"Metal API Validation Enabled"
-
[解決済み] UITabBar アイコンが正しく表示されない
-
[解決済み] データソースからのセルの取得に失敗しました。
-
[解決済み] SwiftUI vs Interface Builderとストーリーボード【非公開
-
[解決済み] Swiftを使って音を鳴らすには?
-
[解決済み] iOS Swift 3 - UIDatePicker
-
[解決済み] performSelectorのセレクタが不明なため、リークが発生する可能性があります。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】印刷します。エントリ, ":CFBundleIdentifier", Does Not Exist
-
[解決済み] Int 型のインデックスを持つ [AnyObject]? の値を添え字として使用できません。
-
[解決済み] Argument passed to call that takes no arguments "エラーを修正するには?
-
[解決済み] ios8ではdidRegisterForRemoteNotificationsWithDeviceTokenは呼ばれないが、didRegister...Settingsは呼ばれる。
-
[解決済み] Swift の performSegueWithIdentifier が動作しない。
-
[解決済み] SwiftでUIColor patternImageを使用して画像を中心からタイル状に配置する方法
-
[解決済み] なぜSwiftでUIViewControllerのデフォルトのsuper.init()を呼び出すことができないのでしょうか?
-
[解決済み] 起動画面にカスタムクラス名が設定されない場合がある
-
[解決済み] Unwind segue - インスタンスメソッドのみ @IBAction を宣言でき、ボタンが Exit に接続しない
-
[解決済み] 'CGPointMake' は swift で使用できません [重複] 。