2014-10-28 41 views
1
func getFetchRequest(#entityName: String, address value: String) -> NSFetchRequest { 
    var fetch = NSFetchRequest(entityName: entityName) 
    fetch.predicate = NSPredicate(format: "address = %s", value) 
    println(fetch) 
    return fetch 
} 

問題在於它與Xcode < 6.1一起工作並停止使用6.1。帶字符串的NSPredicate看起來不會返回結果

傳遞getFetchRequest(entityName: "Entity", address: "test")提供了以下

(
    entity: Entity; 
    predicate: (address == "s"); 
    sortDescriptors: ((null)); 
    type: NSManagedObjectResultType; 
) 
+1

你能'調用println(謂語)'的輸出添加到各種工作和非工作情況下? – 2014-10-28 19:15:27

+0

現在編寫測試來確認,但它的值爲「零」而不是「(...)」。這是不正確的,考慮到逐步執行,傳遞給NSPredicate的變量中有值。編輯:測試完成後將編輯。 – 2014-10-28 20:01:50

+0

@MartinR這很奇怪。如果我直接進行單元測試,它就可以工作。代碼不像我在問題中那樣結構化,我需要更新以反映開發中的實際問題。單步執行代碼具有價值,但是println(謂詞)的值爲「nil」。我完全不明白。 – 2014-10-29 18:38:32

回答

0

Solution found in another answer也許可以算這個副本。

解決方案

NSPredicate(format: "address = %s", value) 

應該是:

NSPredicate(format: "address = %@", value) 
相關問題