0

取り組んでいるプロジェクトにストーリーボードがありますが、最近、問題があることに気付きました。どこからともなく、私のコードは、セル識別子のクラスを登録する必要があることを教えてくれます

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier rootCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'

(ストーリーボードにセルのプロトタイプがあるので、その必要はないと思います。)

[tableView registerClass:<my class> forCellReuseIdentifier:<identifer>];

それを超えるとハングアップします

[self performSegueWithIdentifier:<my ID> sender:self];

そして、セグエが見つからないことを教えてくれます。ストーリーボードで適切な識別子を使用してセグエがセットアップされていることを確認できました。

問題が何であるかを知っている人はいますか?

しばらく前にストーリーボードの名前を変更しましたが、info.plist を更新しましたが、その後も機能していると確信しています。

別のプロジェクトでストーリーボードを再作成すると正常に動作しますが、このプロジェクトでストーリーボードを再作成すると失敗します。

編集:IBでクラスを正しく設定していますが、これは手動のセグエです。

編集:正確なエラー文言を追加しました。

4

2 に答える 2

1

私はちょうどこれが起こった。

[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"WhateverCellID"];私のviewDidLoadに追加する必要がありました

通常のviewControllerを使用していましたが、間違いに気づき、tableViewControllerに切り替えて同じエラーが発生し始めました。

または、「UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];」を使用します。indexPath オプションを指定しない場合、これは別の呼び出しであり、登録を必要とせず、ニーズに合う場合があります。

于 2013-04-04T20:14:31.430 に答える
0

iPhone/iPad/Simulator またはデバッグしている場所からストーリーボードを削除し、Xcode で消去してからビルドして実行すると、異なる結果が表示されますか? 私が質問する理由は、Xcode でビルドするたびに、プロジェクトにこれまでに含まれていたすべてのものの統合が得られるからです。したがって、ストーリーボードの名前を変更し、完全なクリーンアップを行っていない場合は、ビルドされた製品に両方のストーリーボードが含まれている可能性があります。

于 2013-04-05T05:15:28.350 に答える