【发布时间】:2014-08-20 23:58:41
【问题描述】:
我从核心数据填充我的表格视图。根据主键和辅助键对行进行排序。 viewDidLoad 方法包含 MOC 和获取请求代码。
用户可以通过不同的视图更新tableview中的行,数据会及时更新为显示。但是显示的数据现在没有按正确的排序顺序。
我的问题是如何对数据进行相应的排序和显示?我应该再次调用 viewDidLoad 方法来重新获取数据然后重新加载 tableview 吗?做这个的最好方式是什么?如果我应该调用 viewDidLoad 方法,应该在哪里完成?
我的代码如下所示:
- (void)viewDidLoad
{ [超级viewDidLoad];
NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"MonitorItem"];
[fetchRequest setSortDescriptors:[NSArray arrayWithObjects:
[[NSSortDescriptor alloc] initWithKey:@"show"
ascending:NO],
[[NSSortDescriptor alloc] initWithKey:@"expiry"
ascending:YES], nil]];
self.monitorItemArray = [[managedObjectContext
executeFetchRequest:fetchRequest
error:nil] mutableCopy];
}
【问题讨论】:
-
你在用
NSFetchedResultsController吗? -
不,我不知道。你能告诉我怎么做吗?
-
不。但是你可以在 Apple 的开发者网站上找到很多信息。
-
Apples 自己的 Xcode 项目模板用于主从应用程序,核心数据框已选中,使用 NSFetchedResultsController。
-
我已经检查了所有的参考资料,但不明白如何实现它。我是初学者,很多东西还是不懂。也许@fgeorgiew 说的是正确的。我将对象存储在一个数组中。上面附加了 viewDidLoad 方法。我将看看KVO。谢谢。
标签: ios iphone uitableview sorting core-data