iphone:NSFetchedResultsController存在预测问题

iphone:NSFetchedResultsController存在预测问题,iphone,objective-c,core-data,nsfetchedresultscontroller,nspredicate,Iphone,Objective C,Core Data,Nsfetchedresultscontroller,Nspredicate,我目前在我的系统中有一个“主题”实体定义为: @interface Topic : NSManagedObject { } @property (nonatomic, retain) NSString * path; @property (nonatomic, retain) NSString * name; @property (nonatomic, retain) NSNumber * topicID; @property (nonatomic, retain) NSNumber *

我目前在我的系统中有一个“主题”实体定义为:

@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定义是否错误吗

您喜欢这项工作吗

[NSPredicate predicateWithFormat:@"topicID == %@", [NSNumber numberWithInt:4100]];

尝试将cacheName设置为零:

NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:_context sectionNameKeyPath:nil cacheName:nil];
在类似的情况下,它帮助了我