0

Core Dataでフェッチされた結果コントローラーを使用してオブジェクトを削除しようとしてUITableViewいますが、オブジェクトは削除されますが、セルは削除されず、tablecelldeleteanimationは機能しません

objtableview.delegate = otherdelegateobject; 
objtableview.datasource = otherdatasourceobject; 

テーブルビュー編集スタイルのデータソースメソッドでは、coredataオブジェクトを削除しているので、nsfetchedresultsコントローラーデリゲートメソッドは...と呼ばれます。

- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath { 
switch(type) { 
case NSFetchedResultsChangeDelete: 
[self.tblRecentSearch reloadData];

(全文を参照)コアデータオブジェクトを削除していますが、テーブルビューのリロードデータが機能しないように呼び出された場合、スレッド関連の問題のようです。別のスレッドからテーブルをリロードしようとしている可能性があります。

4

1 に答える 1

0

この方法は、変更を保存reloadDataした後にのみ機能します。デリゲート コールバックの全体的な目的は、行を手動で変更することなので、変更をアニメーション化できます。

case:NSFetchedResultsChangeDelete:
    [self.tblRecentSearch deleteRowsAtIndexPaths:@[indexPath];
                                withRowAnimation: UITableViewRowAnimationFade];
于 2012-11-17T10:23:50.687 に答える