ios - 检索核心数据实体中的最后一行/对象作为字符串

标签 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,
                                    ...,

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

我试图获取 lastObjectAdmin使用此代码的实体:

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>)

谁能帮我实现这个目标?任何帮助是极大的赞赏。如果您能想到更简单的“登录”方式,我很乐意采纳建议。谢谢。

最佳答案

试试这个:

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

关于ios - 检索核心数据实体中的最后一行/对象作为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25890926/

相关文章:

objective-c - 上传到 Testflight 解析 IPA 时出现意外错误

ios - 在 iOS 7 中隐藏状态栏时防止 UINavigationController 调整原点

ios - NSPredicate和SUBQUERY不起作用

ios - 数据如何存储在核心数据模型(属性)中

ios - Objective-c 项目 : not supported for static libraries 中的 Swift

SwiftUI 和编译器无法在合理的时间内对该表达式进行类型检查

ios - 在 Xcode 7 中,如何让 View 填充父 View 的宽度并固定在底部?

ios - CAKeyframeAnimation 旋转不绘制真实阴影

ios - 为什么每次加载新的 xib 文件时?为什么它不替换以前的文件?

objective-c - 即使从主线程调用更新,UI 也不更新