非常に奇妙な問題の解決に数時間を費やしましたが、どうやって進めるのか本当に分かりません。cellForRowAtIndexPathはデバイス上でnilを返します
私は、カスタム(サブクラス化された)UITableViewCellセルが埋め込まれたXIBから参照されるグループ化されたUITableViewを持っています。すべてのセル(各1つのセルを持つ2つのセクション)が表示されていると私は呼び出すことにより、それらのいずれかを取得しようとしています:
セルが適切に返されたシミュレータ4.2でNSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:1];
LocationSearchFilterCell *cell = (LocationSearchFilterCell *)[filterTable cellForRowAtIndexPath:indexPath];
。
デバイス4.0.xでは、コードはNILを返します。
Simulator 4.0.xでは、コードはNILを返します。
シミュレータ4.1で、セルは正しく返されますデバイス4.1ではではありません。
私はこのアプローチをアプリケーション内の他のいくつかの場所で使用しており、セルは常に適切に返されるということです。私は、何か違ったやり方でiOSのバグと組み合わされた私の奇妙な組み合わせだと思う。
P. NILが、私はそれが作成されたときに、セルのポインタを取得し、呼び出しGDBを使用して、返されたという状況では:(それは私が提供していたものと一致する)
(gdb) po (void *)[filterTable indexPathForCell:(UITableViewCell *)0x7b08520]
と私は有効なインデックスのパスを取得することを意味しますセルが有効で、テーブルビューに表示されます。
私はこの最後の呼び出し(ポインタによって)によって返されたオブジェクトを渡そうとしましたが、まだNILを取得します。
あなたはセルを取得しようとしていますか? – Rits
ボタンプレスで呼び出されるカスタムメソッド。 – pmilosev
返されるオブジェクトが実際にLocationSearchFilterCell型であるかどうかを確認してください:([cell isKindOfClass:[LocationSearchFilterCell class]]) – Felix