由于不支持 CoreData 长度,并且 CoreData 将谓词 name.length > 1 转换为 sqlite in name > 1 ... 虽然它应该是 length(name) > 1。
我们可以使用这个:
[NSPredicate predicateWithFormat:@"NOT name MATCHES '^\s*$'"];
但是正则表达式将具有更高的计算成本(比评估正则表达式花费的时间比简单的相等要长)。
所以我必须怎么做。有什么好主意吗?
最佳答案
请转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
关于core-data - NSPredicate 用于检查核心数据中的 NULL 和空白字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22614946/