【发布时间】:2014-10-25 09:55:06
【问题描述】:
我想知道如何在不使用 fetch 的情况下从核心数据中的实体获取第一项?
我问的原因是因为我将设置文件放在核心数据上,而不是创建一个单独的文件来保存这些值。因为每当更新应用程序时,单独的文件就会被删除,核心数据也会被迁移。如果我将用户的设置放在文件中,则在更新应用程序时不会保留它。核心数据被保留(给予或接受一些箍)。
我知道如何获取,但有没有其他方法(更简单的方法)来获取核心数据实体的第一个条目?
【问题讨论】:
我想知道如何在不使用 fetch 的情况下从核心数据中的实体获取第一项?
我问的原因是因为我将设置文件放在核心数据上,而不是创建一个单独的文件来保存这些值。因为每当更新应用程序时,单独的文件就会被删除,核心数据也会被迁移。如果我将用户的设置放在文件中,则在更新应用程序时不会保留它。核心数据被保留(给予或接受一些箍)。
我知道如何获取,但有没有其他方法(更简单的方法)来获取核心数据实体的第一个条目?
【问题讨论】:
恐怕你必须通过取物的动作。您可以通过将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
}
【讨论】: