我是 xcode 和核心数据的新手。我想使用核心数据执行以下查询。
从 roomtype=@"ac single" 和 roomstatus=@"YES" 的房间表中选择 count(roomtype);
请指导我如何使用 NSPredicate 来执行我的查询。
我是 xcode 和核心数据的新手。我想使用核心数据执行以下查询。
从 roomtype=@"ac single" 和 roomstatus=@"YES" 的房间表中选择 count(roomtype);
请指导我如何使用 NSPredicate 来执行我的查询。
处理核心数据的步骤是:
创建获取请求以将对象拉入托管对象上下文
// Assuming you have an entity called Rooms:
[NSFetchRequest fetchRequestWithEntityName:@"Rooms"];
现在创建要应用于该实体的谓词以过滤返回的内容
// Assuming that the Rooms entity has attributes for "roomType" and "roomStatus"
// I'd actually use %K and attributes - but this will do until you learn about them.
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"roomType == %@ and roomStatus == %@", @"ac single", @"YES"];
[request setPredicate:predicate];
运行获取请求
// Assuming you have the managed Object Context in a property
NSError *error;
NSArray *results = [self.moc executeFetchRequest:request error:&error];
// Make sure the results are not nil, if they are handle the error
if (!results) {
// Handle error in here using the error parameter you passed in by reference.
}
结果现在在一个数组中,您可以简单地获得满足谓词的实体数量:
NSUInteger resultCount = [results count];
在使用 Core Data 时,这都是标准的东西。如果您按照自己的方式进行操作并尝试理解这些步骤 - 您将有很长的路要走来编写自己的 fetch 请求。