我想知道如何在不使用fetch的情况下从核心数据中的实体获取第一个项目?
我问的原因是因为我将设置文件放在核心数据上,而不是创建一个单独的文件来保存值。因为当应用程序更新时,单独的文件会被炸毁并且核心数据会被迁移。如果我将用户的设置放在文件上,则在更新应用程序时不会保留该设置。保留核心数据(给予或采取一些箍)。
我知道如何获取但是有没有其他方法(更简单的方法)才能获得核心数据实体的第一个条目?
答案 0 :(得分:2)
我担心你必须经历抓取的动作。您可以将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
}