iphone:NSFetchedResultsController 的 NSPredicate 问题
Posted
技术标签:
【中文标题】iphone:NSFetchedResultsController 的 NSPredicate 问题【英文标题】:iphone: NSPredicate problem with NSFetchedResultsController 【发布时间】:2010-09-30 20:30:43 【问题描述】:我目前在我的系统中定义了一个“主题”实体:
@interface Topic : NSManagedObject
@property (nonatomic, retain) NSString * path;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSNumber * topicID;
@property (nonatomic, retain) NSNumber * parent;
@end
我想使用 NSFetchedResultsController 获取具有特定数字(例如 4001)的主题。我将我的定义为:
- (NSFetchedResultsController *)fetchedResultsController
if (_fetchedResultsController != nil)
return _fetchedResultsController;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Topic" inManagedObjectContext:_context];
[fetchRequest setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"topicID == 4100"];
[fetchRequest setPredicate:predicate];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"path" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:_context sectionNameKeyPath:nil cacheName:@"Root"];
self.fetchedResultsController = theFetchedResultsController;
_fetchedResultsController.delegate = self;
[fetchRequest release];
[theFetchedResultsController release];
return _fetchedResultsController;
..没有谓词,FetchedResultsController 工作正常.. 但是,当我添加它时,出现错误并且应用程序崩溃.. 有人可以告诉我我是否错误地定义了我的 NSPredicate 吗?
【问题讨论】:
【参考方案1】:尝试将 cacheName 设置为 nil:
NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:_context sectionNameKeyPath:nil cacheName:nil];
它在类似的情况下帮助了我。
【讨论】:
【参考方案2】:这样的东西有用吗?
[NSPredicate predicateWithFormat:@"topicID == %@", [NSNumber numberWithInt:4100]];
【讨论】:
以上是关于iphone:NSFetchedResultsController 的 NSPredicate 问题的主要内容,如果未能解决你的问题,请参考以下文章
核心数据:NSFetchedResultsController 错误:尝试创建两个动画
NSFetchedResultsController 仅按第一个排序描述符排序
NSFetchedResultsController - TableView 中的 UI 更新不完整
如何在 tableView 行选择时更新我的 fetchedResultsController?
更改 NSFetchedResultsController 的 Fetch Request 和重新加载表数据的方法
如何在不通知 NSFetchedResultsController 的情况下更新 NSManagedObject 或 NSManagedObjectContext