0

私はしばらくこのプロジェクトに取り組んできました。すべて問題なく、今日 XCode 4.6 にアップグレードしました...突然、クラッシュしました。データがない場合 (私は Core Data を使用しています)、空白のテーブルビューを読み込みます。他のView Controllerに何かを追加しようとするとすぐにクラッシュします。シミュレーターと私のデバイスで同じ問題。「すべての例外」ブレークポイントが有効になっていると、デバッガーは次の行を指しています。

    ReedCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

例外として「UITableview:認識されないセレクター...」が表示されます。私のクラスは間違いなく UITableViewController のサブクラスなので、tableView が必要ですよね? 次のテスト コードを ViewDidLoad に入れると、確認が取れません。つまり、私の tableView はメソッドに応答しなくなりました。一体何?廃止された場合、そのドキュメントはありません。

if ([self.tableview respondsToSelector:@selector(dequeueReusableCellWithIdentifier:forIndexPath:)]) {
    NSLog(@"RTVC responds to selector dequeueReusableCellWithIdentifier:forIndexPath:");
}

クリーンアップを行い、シミュレーターから削除し、ストーリーボードのビューコントローラーがまだ正しいクラスであることを確認しました(そうです)。また、「tableview」ではなく「self.tableview」にメッセージを送信してみました。修正なし。繰り返しますが、これは正常に機能していました。何も変更していません。4.6 にアップグレードしただけです。ありがとう!

4

1 に答える 1

1

このメソッドは iOS 6 で追加されました。したがって、古いシミュレーターには存在しません。

docs UITableViewを見ると、メソッドがいつ導入されたかがわかります

提供状況
iOS 6.0 以降で利用可能です。

于 2013-02-11T21:51:34.713 に答える