私は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;
}