【发布时间】:2011-07-06 09:15:43
【问题描述】:
我的数据模型中有两个实体:Details 和 Lookup。我需要找到与具有特定属性值的特定Lookup 对象相关的所有Details 对象,然后通过获取的结果控制器返回这些Details 对象。
我的 NSManagedObjectSubclasses:
@interface Details : NSManagedObject {
@privateI
}
@property (nonatomic, retain) NSString * owner;
@property (nonatomic, retain) NSString * introduction;
@property (nonatomic, retain) NSString * id;
@property (nonatomic, retain) NSString * title;
@property (nonatomic, retain) NSString * created;
@property (nonatomic, retain) NSString * modified;
@property (nonatomic, retain) NSNumber * type;
@property (nonatomic, retain) NSString * desc;
@interface Lookup : NSManagedObject {
@private
}
@property (nonatomic, retain) NSDate * search_date;
@property (nonatomic, retain) NSString * search_phrase;
@property (nonatomic, retain) NSSet* searchResults;
我需要根据其search_phrase 属性找到一个Lookup 对象,然后获取所有相关的Details 对象并在获取的结果控制器中返回这些对象。
我想我必须先搜索Lookup 对象,然后遍历 Detail 对象的 NSSet,但我不知道如何在 NSFetchedResultsController 中返回这些对象。
我试过了:
NSPredicate *predicate =[NSPredicate predicateWithFormat:@"search_phrase = %@", self.searchPhrase];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
fetchRequest.predicate = predicate;
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Lookup" inManagedObjectContext:self.context];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"search_phrase" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.context sectionNameKeyPath:nil cacheName:@"Searches"];
我有一个找到正确的Lookup 对象的请求,但我不知道如何从获取的结果控制器中获取相关的Detail 对象。
【问题讨论】:
-
您的原始问题因不清楚且不完整而被否决。任何人都很难弄清楚你需要什么。我已使用附加信息对其进行了编辑,以提出更有用的问题。
-
啊,我明白了,对不起,我下次会努力让自己更清楚。
标签: iphone core-data nsfetchedresultscontroller nspredicate