gpt4 book ai didi

ios - NSPredicate,executeFetchRequest 崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:19:38 26 4
gpt4 key购买 nike

我正在做一个 Core Data 教程,但我总是遇到崩溃。这是一个 objc_exception_throw。

我创建了一个名为 loadTableData 的方法并在 viewDidLoad 中调用它

-(void)loadTableData{
NSManagedObjectContext *context = [[self appDelegate]managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Label" inManagedObjectContext:context];

[fetchRequest setEntity:entity];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"label like %@", [context objectWithID: self.labelID]];

[fetchRequest setPredicate:predicate];


NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]initWithKey:@"name" ascending:YES];

NSArray *sortDescriptors = [[NSArray alloc]initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

NSError *error = nil;
self.artistArray = [context executeFetchRequest:fetchRequest error:&error];

[self.tableView reloadData];
}

卡在这里

self.artistArray = [context executeFetchRequest:fetchRequest error:&error];

注释掉谓词 alloc/init 和 setPredicate 方法调用会导致应用程序不会崩溃,但不会执行我想要的操作。

请参阅下面的实体和关系。

Core Data Entities

在 LabelViewController 中,这里有额外的代码来显示如何设置 [context objectWithID: self.labelID]

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
MLBLArtistViewController *artistViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"ArtistViewController"];

Label *label = [self.labelArray objectAtIndex:indexPath.row];

artistViewController.labelID = [label objectID];

[self.navigationController pushViewController:artistViewController animated:YES];
}

最佳答案

我会使用 CONTAINS 代替:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"label CONTAINS[cd] %@", [context objectWithID: self.labelID]];

您可以使用 LIKE,但我喜欢 CONTAINS 的简单性,请参阅以下问题: NSPredicate that is the equivalent of SQL's LIKE

关于ios - NSPredicate,executeFetchRequest 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20629150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com