【发布时间】:2013-08-12 14:05:30
【问题描述】:
我正在使用神奇的记录从核心数据中获取数据,使用代码:
- (NSFetchedResultsController *)fetchedResultsController {
if (!_fetchedResultsController ) {
_fetchedResultsController = [TagItem MR_fetchAllGroupedBy:nil withPredicate:nil sortedBy:@"name" ascending:YES delegate:self];
}
return _fetchedResultsController;
}
问题是,它正在填充由另一个表视图控制器推送到的表视图控制器,所以基本上用户选择一个选项,将人带到数据列表,但选项中的数据特定于那个选项。所以我想做的是只获取分配给该选项的数据,而不是简单地显示所有可用数据。我上面的方法只允许我获取所有数据,而不是根据选项选择特定数据。选项中的数据作为一个实体被赋予选项本身的 objectId,从而提供了两者之间的关系。
所以我的问题是,如何使用魔法记录根据特定实体获取数据?
更新
我尝试将谓词设置为特定值只是为了测试它是否有效,我认为它与单独处理核心数据的工作方式相同,但我只是得到一个错误。
- (NSFetchedResultsController *)fetchedResultsController {
if (!_fetchedResultsController ) {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name = test"];
_fetchedResultsController = [TagItem MR_fetchAllGroupedBy:nil withPredicate:predicate sortedBy:@"name" ascending:YES delegate:self];
}
return _fetchedResultsController;
}
错误如下,即使我确定有一个名称为test的数据项存储,但它似乎不起作用。
'NSInvalidArgumentException',原因:'无法为谓词(名称 == 测试)生成 SQL(RHS 上的问题)'
【问题讨论】:
-
测试谓词中的引用错误:
[NSPredicate predicateWithFormat:@"name = 'test'"]或更好:[NSPredicate predicateWithFormat:@"name = %@", @"test"]。
标签: ios objective-c core-data nsfetchedresultscontroller magicalrecord