核心数据简单获取请求模板

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;在头文件中。

【讨论】:

以上是关于核心数据简单获取请求模板的主要内容,如果未能解决你的问题,请参考以下文章

获取高级自定义模板标记中的请求上下文

带有数组的核心数据获取请求

获取复杂请求核心数据的谓词和表达式

保存核心数据中断获取请求

NSSortDescriptor 对核心数据获取请求没有影响

关系属性的核心数据获取请求