以字符串形式检索Core Data实体中的最后一行/对象

时间:2014-09-17 12:44:42

标签: ios objective-c core-data entity nsfetchrequest

我需要为我的问卷调查应用开发一个简单的login系统。

我有两个Entity - 一个用于保存名为NGLS的问卷调查数据,用于存储客户详细信息,调查答案等,另一个用于保存用户的Admin。用户可以输入保存到username实体的Admin。然后,他们可以根据需要多次浏览调查问卷,每次完成的调查都会在每次调查后保存到NGLS实体,如下所示:

    // Save managedObject
    NSError *error;
    [[self.managedObjectNGLS managedObjectContext] save:&error];
    NSLog(@"%@", self.managedObjectNGLS);
    NSLog(@"Data saved"); 

export按钮使用NSFetchRequest检索NGLS实体中存储的所有数据,并使用CHCSV Parser将该数据写入.csv然后将其附在电子邮件中。

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"NGLS"
                                              inManagedObjectContext:context];
    [fetchRequest setEntity:entity];
    NSError *error;
    NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];

    // CHCSVParser
    NSOutputStream *stream = [[NSOutputStream alloc]initToMemory];
    CHCSVWriter *writer = [[CHCSVWriter alloc]initWithOutputStream:stream
                                                          encoding:NSUTF8StringEncoding
                                                         delimiter:','];

    // Fetch objects to write to .csv
    for (Model *results in fetchedObjects) {
        [writer writeLineOfFields:@[results.username,
                                    results.dateStamp,
                                    ...,

我需要做的是检索username实体中最后存储的Admin,并在每次完成调查后将其保存到username实体中的NGLS键。这基本上允许用户打开应用程序并且"登录"一次,多次完成调查问卷,.csv中的每一行都有username - 无需他们在每次完成的调查时输入username

我尝试使用此代码获取lastObject实体中的Admin

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Admin" inManagedObjectContext:context];
[fetchRequest setEntity:entity];

NSError *error = nil;
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];

NSLog(@"Last username is %@", [fetchedObjects lastObject]);

但输出是:

Last username is <NSManagedObject: 0xb7a20d0> (entity: Admin; id: 0xb7a1410 <x-coredata://1D073AF9-3FFB-476A-A6CC-BC15398F4B86/Admin/p2> ; data: <fault>)

任何人都可以帮助我实现这一目标吗?任何帮助是极大的赞赏。如果你能想到一个更简单的方式来登录&#34;,我很乐意接受建议。感谢。

1 个答案:

答案 0 :(得分:1)

试试这个:

Admin *model = [fetchedObjects lastObject]; NSLog(@"Last username is %@", model.username);