iphone - NSFetchedResultsController 中的 NSPredicate 抛出 EXC_BAD_ACCESS

标签 iphone objective-c ios core-data exc-bad-access

我有一个使用 NSFetchedResultsController 的 UITableViewController。如果我删除谓词,它工作正常,但使用谓词时,它会抛出错误访问(EXC_BAD_ACCESS)。我启用了 NSZombieEnabled,但没有任何结果。我正在使用ARC。我不明白!请帮忙。这是我的 fetchedresultscontroller 代码 注意:将谓词更改为随机简单谓词,例如“unitNumber = nil”或“unitNumber LIKE %@”,unString 仍然会导致崩溃,但是完全注释掉谓词不会产生崩溃(但是我拥有了所有对象并且显然没有过滤器):

- (NSFetchedResultsController *)fetchedResultsController
{
if (_fetchedResultsController != nil) {
    return _fetchedResultsController;
}

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Unit" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];

// Predicate
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"workTicket.appointment.scheduleRowPointer = %@", rp];
[self.fetchedResultsController.fetchRequest setPredicate:predicate];


// Sort Descriptor
NSSortDescriptor *unitNumberDescriptor = [[NSSortDescriptor alloc] initWithKey:@"unitNumber" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:unitNumberDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"addedToTicket" cacheName:nil];

return _fetchedResultsController;
}

最佳答案

改变:

[self.fetchedResultsController.fetchRequest setPredicate:predicate]; 

到:

[fetchRequest setPredicate:predicate]; 

关于iphone - NSFetchedResultsController 中的 NSPredicate 抛出 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12055082/

相关文章:

iphone - 如何设置 MGTwitterEngine

ios - 本地化语言资源ios

iphone - 使用 Javascript 禁用 iPhone 上的 'save image' 菜单

ios - React Native 应用程序未在 XCode iOS 模拟器中运行

将文件共享到任何可能的应用程序的 iOS native 方式

iphone - 如何将照片和视频加载到Iphone Simulator 4.0

iphone - 在 Objective-C 中操作字符串

objective-c - UIWebView stringByEvaluatingJavaScriptFromString 在后台

objective-c - 如何将一个 UIDatePicker 用于多个 UITextFields?

ios - Api 给出错误响应