3

由于CoreData长度不受支持,CoreData将谓词name.length> 1翻译为名称> 1中的sqlite ...虽然它应该是length(name)> 1NSPredicate检查NULL,并在Core Data中检查空字符串

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

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

所以我该如何做fetch.Any最好的想法?

回答

1

请通过CoreData predicate: string property length?

,或者你可以像这样

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

参考 - NSPredicate for an NSManagedObject's string attribute's length

+0

我DONOT要检查它的长度是否大于5或不。我只想检查它的长度是否大于0。 –