簡體   English   中英

NSFetchedResultsController中的NSPredicate拋出EXC_BAD_ACCESS

[英]NSPredicate in NSFetchedResultsController throwing 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]; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM