NSPredicate в поле UUID возвращает пустой массив - PullRequest
0 голосов
/ 02 мая 2019

У меня есть метод, который выбирает некоторые сущности из базовых данных на основе предиката (см. Ниже).Он проходит модульные тесты и работает большую часть времени в реальном коде.

let request = NSFetchRequest<T>()
request.predicate = NSPredicate(format: "myUUID.UUIDString == %@", someUUIDString)
request.entity = entityDescription

Затем я сделал интеграцию с CloudKit, используя CKFetchRecordZoneChangesOperation.Теперь тот же метод, все еще выбирающий основные объекты данных, прекратил возвращать объекты.Я трижды проверил, что я передаю допустимую строку uuid, которая определенно существует в основных данных.Не возвращает результатов.

После долгих отладок я решил, что если я использую приведенный ниже код, он работает.Как это вообще возможно, учитывая, что поле является UUID, а не строкой?

let request = NSFetchRequest<T>()
request.predicate = NSPredicate(format: "myUUID == %@", someUUIDString)
request.entity = entityDescription

Кто-нибудь сталкивался с подобными проблемами?Заранее благодарю за любую помощь.

...