Core data NSPredicate子查询
如何为上述SQL语句制定NSPredicateCore data NSPredicate子查询,core-data,nspredicate,Core Data,Nspredicate,如何为上述SQL语句制定NSPredicate 我想检索记录,其中syncDataType==1和syncDataType 1同步的最近日期。对于核心数据,您需要 获取对象,其中syncDataType==1 按syncLastSuccessOnDt降序排序,以及 将结果集限制为1 因此,您需要的是NSFetchRequest。(NSPredicate只是 获取请求。) 如果已为实体创建了托管对象子类SyncEntry,则最后一部分可以 写成 NSManagedObjectContext *
我想检索记录,其中syncDataType==1和syncDataType 1同步的最近日期。对于核心数据,您需要
- 获取对象,其中
syncDataType==1
- 按
降序排序,以及syncLastSuccessOnDt
- 将结果集限制为1
NSFetchRequest
。(NSPredicate只是
获取请求。)
如果已为实体创建了托管对象子类SyncEntry
,则最后一部分可以
写成
NSManagedObjectContext *context = your managed object context
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"SyncEntry"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"syncDataType = %d", 1];
[request setPredicate:predicate];
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"syncLastSuccessOnDt" ascending:NO];
[request setSortDescriptors:@[sort]];
[request setFetchLimit:1];
NSError *error;
NSArray *results = [context executeFetchRequest:request error:&error];
if (results == nil) {
// Error
} else if ([results count] == 0) {
// Nothing found
} else {
NSManagedObject *obj = results[0];
NSDate *lastSync = [obj valueForKey:@"syncLastSuccessOnDt"];
}
有了核心数据,您将
- 获取对象,其中
syncDataType==1
- 按
降序排序,以及syncLastSuccessOnDt
- 将结果集限制为1
NSFetchRequest
。(NSPredicate只是
获取请求。)
如果已为实体创建了托管对象子类SyncEntry
,则最后一部分可以
写成
NSManagedObjectContext *context = your managed object context
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"SyncEntry"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"syncDataType = %d", 1];
[request setPredicate:predicate];
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"syncLastSuccessOnDt" ascending:NO];
[request setSortDescriptors:@[sort]];
[request setFetchLimit:1];
NSError *error;
NSArray *results = [context executeFetchRequest:request error:&error];
if (results == nil) {
// Error
} else if ([results count] == 0) {
// Nothing found
} else {
NSManagedObject *obj = results[0];
NSDate *lastSync = [obj valueForKey:@"syncLastSuccessOnDt"];
}
感谢[request setFetchLimit:1];感谢[request setFetchLimit:1];
SyncEntry *obj = results[0];
NSDate *lastSync = obj.syncLastSuccessOnDt;