さまざまなセクションとセル スタイル、つまり iOS 設定アプリを含むテーブル ビューがあります。
heightForRowAtIndexPath に問題があります。それを含めると、セルを挿入しようとするたびにアプリがクラッシュしました。
2014-07-27 17:24:48.660 Schoodle[413:31582] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'
ただし、テーブル ビューにはさまざまなセルがあるため、メソッドを実装する必要があります。たとえば、ほとんどのセルの高さは 44 ピクセルですが、常に表示されるとは限らず、高さが 216 ピクセルの日付ピッカー セルがあります。自動レイアウトを使用すると、セルの高さは問題ありませんが、セルを挿入するアニメーションがビクビクします。
以前はこの問題はありませんでしたが、テーブル ビューのセクションの 1 つを 2 つの異なるセクションに分割することにしました。セルを挿入しようとすると、アプリがクラッシュします。これは以前は発生していませんでした。heightForRowAtIndexPath または EstimatedHeightForRowAtIndexPath が実装されている場合にのみ発生します。
この UITableView insertRowsAtIndexPaths が __NSArrayM insertObject:atIndex:'object cannot be nil' エラーをスローしていることがわかりまし たが、代替手段はありません。単に、必要な heightForRowAtIndexPath を実装しないでください。これを解決する方法はありますか?
編集 heightForRowAtIndexPath の実装を追加 - 複雑なことは何もありません (セクションと行の列挙型がいくつかあります。datePickerIndex は日付ピッカーの行であるか、存在しない場合はゼロです)。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == ScheduleEditorSectionDates && self.datePickerIndex && indexPath.row == self.datePickerIndex) return 216.0f;
return 44.0f;
}