如何使用托管对象更新 UITableView?

Posted

技术标签:

【中文标题】如何使用托管对象更新 UITableView?【英文标题】:How to update UITableView with managed Objects? 【发布时间】:2010-03-10 17:47:10 【问题描述】:

在 viewDidLoad 上我初始化我的数组:

NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Member" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"creationDate" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
[sortDescriptors release];
[sortDescriptor release];
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
[self setMemberArray:mutableFetchResults];
[mutableFetchResults release];
[request release];

这一切都像它应该的那样工作,在 TableView 中我使用 MemberArray,但是如果发生变化,我如何以及在哪里更新我的数组?

感谢您的帮助!

【问题讨论】:

【参考方案1】:

您应该使用NSFetchedResultsController 而不是自己管理阵列。那么您只需要对NSFetchedResultsController 委托方法做出反应,而不是试图确定什么时候发生了变化。

【讨论】:

以上是关于如何使用托管对象更新 UITableView?的主要内容,如果未能解决你的问题,请参考以下文章

如何更新托管对象数据?

如何根据 Core Data 中的关系对象创建 UITableView 部分

Iphone:添加新对象时如何更新显示托管对象的表格视图

更新相关 NSManagedObject 时更新 UITableView

批量更新后更新托管对象上下文中的托管对象

如何更灵活的处理 CloudKit 从云端同步到本地的 CoreData 托管对象