2014-10-28 4 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 with strings не возвращает результаты

Передача getFetchRequest(entityName: "Entity", address: "test") дает следующее

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

Вы можете добавить вывод 'Println (предикат)' для различных рабочих и нерабочих случаев? –

+0

Написание тестов теперь для подтверждения, но оно дает «ноль» для значений вместо «(...)». Это неверно, учитывая, что при переходе через переменные, переданные в NSPredicate, есть значения. Редактировать: будет редактироваться после завершения тестов. –

+0

@MartinR Это странно. Если я выполняю прямые модульные тесты, он работает. Код не структурирован, как у меня в вопросе, и мне нужно будет обновить его, чтобы отразить фактическую проблему в процессе разработки. Выполняя код, имеет значение, но для println (предикат) значение «nil» для значения. Я этого не понимаю. –

ответ

0

Solution found in another answer Может рассчитывать этот дубликат.

Решение

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

Должен быть:

NSPredicate(format: "address = %@", value) 
Смежные вопросы