1

这个搜索谓词有什么理由不能在 iOS 上工作吗?在 OS X 上似乎也可以正常工作。我检查并 date.description 以这种格式“2013-08-28 23:18:16 +0000”返回一个字符串。我正在尝试实现 UISearchBar 来过滤结果,并希望用户能够输入日期的任何部分。

[predicates addObject:[NSPredicate predicateWithFormat:@"date.description contains %@", self.searchString]];

谢谢

4

1 回答 1

1

不,如果它有效,那是巧合。根据文档仅用于调试目的descriptionNSDate

将您的 NSString 转换为 NSDate 并像这样编写您的谓词:

NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
df.dateFormat = @"yyyy-MM-dd HH:mm:ss ZZZ";

NSDate *date = [df dateFromString:self.searchString];
NSPredicate *p = [NSPredicate predicateWithFormat:@"date == %@", date];

编辑:再次阅读您的问题后,这个答案可能不是很有帮助。
我会尝试将[df stringFromDate:date];每个对象的结果保存在某处。然后你应该能够使用contains谓词进行过滤。但你绝不能依赖description

于 2013-08-29T02:08:19.220 回答