在Core Data实体中检索最后一行/对象作为string
我需要为我的调查问卷应用程序开发一个简单的login
系统。
我有两个Entity
– 一个用于存储调查问卷数据,称为NGLS
,存储客户详细信息,调查答案等,另一个称为Admin
用户。 用户可以input他们的username
保存到Admin
实体。 然后,他们可以随意浏览调查问卷,每次完成的调查都会在每次调查后保存到NGLS
实体中,如下所示:
// Save managedObject NSError *error; [[self.managedObjectNGLS managedObjectContext] save:&error]; NSLog(@"%@", self.managedObjectNGLS); NSLog(@"Data saved");
有一个export
button,它使用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, ...,
我需要做的是检索Admin
实体中最后存储的username
,并在每次完成调查时将其保存到我的NGLS
实体中的username
密钥。 这基本上允许用户打开应用程序并“login”一次,多次完成调查问卷,并且.csv中的每一行都将具有该username
– 无需在每次完成的调查中username
。
我试图通过使用下面的代码来获取Admin
实体中的lastObject
:
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>)
任何人都可以帮我实现这个目标 任何帮助是极大的赞赏。 如果你能想到一个更简单的方式来“login”,我会很乐意提出build议。 谢谢。
尝试这个:
Admin *model = [fetchedObjects lastObject]; NSLog(@"Last username is %@", model.username);