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。 –