ユーザーがいずれかの行をクリックしたときに変更する (1 行を削除して 1 行を挿入する) UITableView があります。メモリの解放は iOS6 以前ではうまく機能しますが、iOS7 ではテーブルビューは解放されません。これが私のコードの基本です。コードを大幅に削減しましたが、問題はまだ残っています。
- (void)tableView:(UITableView *)intableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[intableView beginUpdates];
[intableView endUpdates];
}
開始/終了の更新により、メモリがどこかに保持されます。この関数内で (バックグラウンド データ配列と共に) 行を挿入または削除しても同じです。以下を追加するだけで、UITableView とセルをサブクラス化しました。
-(void)dealloc
{
NSLog(@"deallocated %@",[self class]);
}
それらがいつ割り当て解除されるかを確認できるように。選択時にテーブルビューを更新する必要はもうありませんか? 何かが開催されるのは別のスレッドですか?dispatch_async
(私は別のスレッドで試しました)
もっと多くのコードを投稿することもできますが、現在のコードは投稿したものと同じように見えますが、何らかの形でテーブルビューを保持しており、割り当てを解除していません。