0

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

1 に答える 1

1

変化する:

[self.fetchedResultsController.fetchRequest setPredicate:predicate]; 

に :

[fetchRequest setPredicate:predicate]; 
于 2012-08-21T16:53:04.557 に答える