0

由于不支持 CoreData 长度,并且 CoreData 将谓词 name.length > 1 转换为 sqlite in name > 1 ... 虽然它应该是 length(name) > 1。

我们可以使用这个:[NSPredicate predicateWithFormat:@"NOT name MATCHES '^\s*$'"];

但是正则表达式将具有更高的计算成本(比评估正则表达式花费的时间比简单的相等要长)。

所以我必须怎么做。有什么好主意吗?

4

1 回答 1

2

请通过CoreData谓词:字符串属性长度?

或者你可以这样做

NSString *attributeName = @"name";
NSString *attributeValue = [NSString stringWithFormat:@".{%d}", 5];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K MATCHES %@", attributeName, attributeValue];

参考 - NSManagedObject 的字符串属性长度的 NSPredicate

于 2014-03-25T02:33:42.100 回答