【问题标题】:get the first entry in an entity on Core Data获取核心数据实体中的第一个条目
【发布时间】:2014-10-25 09:55:06
【问题描述】:

我想知道如何在不使用 fetch 的情况下从核心数据中的实体获取第一项?

我问的原因是因为我将设置文件放在核心数据上,而不是创建一个单独的文件来保存这些值。因为每当更新应用程序时,单独的文件就会被删除,核心数据也会被迁移。如果我将用户的设置放在文件中,则在更新应用程序时不会保留它。核心数据被保留(给予或接受一些箍)。

我知道如何获取,但有没有其他方法(更简单的方法)来获取核心数据实体的第一个条目?

【问题讨论】:

    标签: xcode core-data entity


    【解决方案1】:

    恐怕你必须通过取物的动作。您可以通过将fetchLimit 设置为1 使其非常高效。在 Swift 和 Objective-C 中,使用可用的便捷方法真的很短。

    var request = NSFetchRequest(entityName:"Event")
    request.fetchLimit = 1
    let result = context.executeFetchRequest(request, error:nil) as [Event]
    if countElements(result) == 1 {
       let event = result.first! as Event
       // do something with event
    }
    

    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Event"];
    request.fetchLimit = 1;
    NSArray *result = [context executeFetchRequest:request error:nil];
    if (result.count) {
        Event *event = result.firstObject;
        // do something with event
    }
    

    【讨论】:

    • 嗯!!感谢您的反馈 :) 我会改用它 :) 我问的原因是因为我知道设置实体将始终只有 1 个条目。我认为的一件事就是获取“用户面部图片”,因为它永远不会为零,并且肯定会返回 1 个对象;)
    • 其实如果是always一个entry,一个简单的plist可能会好很多。您可以通过 iCloud 跨应用安装和版本保存 plist(或用户默认值)的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多