我刚刚发现 Realm 并开始在 objective-c 中使用它。
我正在尝试将对象 create_date
置于 specific date and time
我看了this answer on StackOverflow,所以我尝试了这个:
NSString *dateString = @"2015-06-03 08:24:00";
NSDateFormatter * dateFormatter = [NSDateFormatter new];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *newDate = [dateFormatter dateFromString:dateString];
RLMRealm *realm = [RLMRealm defaultRealm];
NSString *_where = [NSString stringWithFormat:@"create_date < '%@'", newDate];
RLMResults *results = [database_articles objectsInRealm:realm where:_where];
但是我收到以下错误:
'类型为'database_articles'的对象的'创建'属性的类型日期的预期对象,但已收到:2015-06-03 05:24:00 +0000'
那么如何在 Realm 中的查询中传递 NSDATE ?
提前致谢..
答案 0 :(得分:4)
您使用方法+ (RLMResults *)objectsInRealm:(RLMRealm *) where:(NSString *), ...;
,这是一个方便的API,接受一个字符串和更多参数,并为您即时构建NSPredicate
。通过首先将您的参数提供给[NSString stringWithFormat:]
,您可以序列化您的日期,以便发现此错误。
使用这两种变体中的一种来避免这种情况:
RLMResults *results = [database_articles objectsInRealm:realm where:@"create_date < %@", newDate];
NSPredicate *_where = [NSPredicate predicateWithFormat:@"create_date < %@", newDate];
RLMResults *results = [database_articles objectsInRealm:realm withPredicate:_where];