核心数据简单获取请求模板
Posted
技术标签:
【中文标题】核心数据简单获取请求模板【英文标题】:core data simple fetch request template 【发布时间】:2014-06-04 12:59:05 【问题描述】:我有一个小型核心数据库“Guests”,我正在尝试从名为 FetchRequestA 的获取请求模板中获取结果,我在控制台中创建了一个按钮来触发请求的结果,但我一直得到 null回答,请求设置为显示所有包含 d 的 guestlastnames ?这是我正在使用的代码:
- (IBAction)fetchA:(id)sender
NSFetchRequest *request2 = [[[self managedObjectModel] fetchRequestTemplateForName:@"FetchRequestA"] copy];
NSSortDescriptor *sort = [[NSSortDescriptor alloc]initWithKey:@"guestlastname" ascending:YES];
[request2 setSortDescriptors:[NSArray arrayWithObject:sort]];
NSArray *sortDescriptors = [[NSArray alloc]initWithObjects:sort, nil];
[request2 setSortDescriptors:sortDescriptors];
NSError *error = nil;
NSArray *fetchedObjects = [[self managedObjectContext] executeFetchRequest:request2 error:&error];
if (fetchedObjects == nil)
NSLog(@"problem %@", error);
for (Guests *guestlastname in fetchedObjects)
NSLog(@"Fetched Object = %@", guestlastname.guestlastname);
我错过了一个方法吗?仔细阅读了,但无济于事,在此先感谢。
【问题讨论】:
好的......所以经过大量搜索终于找到了方法,这是我现在正在使用的代码,正在日志和标签中返回我的谓词结果: 【参考方案1】:这里是解决方案:
(IBAction)gettemplatebutton:(id)sender
AppDelegate *appDelegate = [[UIApplication sharedApplication] 委托];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSManagedObjectModel* model = [[context persistentStoreCoordinator] managedObjectModel];
NSDictionary* dict = [[NSDictionary alloc]initWithObjectsAndKeys: self.fetchedObjects, @"guestlastname",nil];
NSFetchRequest* request2 = [model fetchRequestFromTemplateWithName:@"FetchRequestA" substitutionVariables: dict];
NSError* 错误 = nil;
NSArray *Guests2 = [context executeFetchRequest:request2 error:&error];
NSString *g3 = @"";
for(NSManagedObject *guestlastname in Guest2)
g3 = [g3 stringByAppendingString:[NSString stringWithFormat:@"%@\n", [guestlastname valueForKey:@"guestlastname"]]];
self.displaytemplateLabel.text = g3;
[_displaytemplateLabel setNumberOfLines:0];
for (NSManagedObject *guestlastname in Guest2)
NSLog(@"%@", [guestlastname valueForKey:@"guestlastname"]);
并添加了@property (nonatomic, retain) NSArray *fetchedObjects;在头文件中。
【讨论】:
以上是关于核心数据简单获取请求模板的主要内容,如果未能解决你的问题,请参考以下文章