gpt4 book ai didi

iphone - 关系的核心数据 NSPredicate

转载 作者:行者123 更新时间:2023-12-03 16:04:25 24 4
gpt4 key购买 nike

我的对象图很简单。

我有一个 feedentry 对象,用于存储有关 RSS 提要的信息以及一个名为 Tag 的关系,该关系链接到“TagValues”对象。这两种关系(对和逆)都是对多的。即,一个 feed 可以有多个标签,一个标签可以与多个 feed 关联。

我提到了How to do Core Data queries through a relationship?并创建了一个 NSFetchRequest。但是当获取数据时,我收到一个异常,

NSInvalidArgumentException未实现的谓词 SQL 生成

我该怎么办?我是核心数据的新手:(我知道我做了一些非常错误的事情...请帮助...

谢谢

--

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
// Edit the entity name as appropriate.
NSEntityDescription *entity = [NSEntityDescription entityForName:@"FeedEntry" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
// Edit the sort key as appropriate.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"authorname" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

[fetchRequest setSortDescriptors:sortDescriptors];

NSEntityDescription *tagEntity = [NSEntityDescription entityForName:@"TagValues" inManagedObjectContext:self.managedObjectContext];
NSPredicate *tagPredicate = [NSPredicate predicateWithFormat:@"tagName LIKE[c] 'nyt'"];
NSFetchRequest *tagRequest = [[NSFetchRequest alloc] init];
[tagRequest setEntity:tagEntity];
[tagRequest setPredicate:tagPredicate];

NSError *error = nil;
NSArray* predicates = [self.managedObjectContext executeFetchRequest:tagRequest error:&error];


TagValues *tv = (TagValues*) [predicates objectAtIndex:0];
NSLog(tv.tagName); // it is nyt here...


NSPredicate *predicate = [NSPredicate predicateWithFormat:@"tag IN %@", predicates];
[fetchRequest setPredicate:predicate];


// Edit the section name key path and cache name if appropriate.
// nil for section name key path means "no sections".
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;

--

最佳答案

这里的关键是“任何”

来自苹果的示例:

NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"ANY employees.firstName like 'Matthew'"];

http://developer.apple.com/mac/library/documentation/cocoa/conceptual/CoreData/Articles/cdBindings.html

关于iphone - 关系的核心数据 NSPredicate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/926536/

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