CoreData Неоднозначная ссылка на идентификатор члена Xcode 12 - PullRequest
0 голосов
/ 07 августа 2020

У меня есть объект coredata с идентификатором атрибута типа String

при попытке ссылаться на этот атрибут из ключевого пути он выдает ошибку

let path = #keyPath(User.id) //Ambiguous reference to member 'id'

для генерации кода установлено значение Class Определение.

Я попытался проверить сгенерированный файл для класса и обнаружил, что класс сущности теперь подтверждает Identifiable, для чего требуется id

Я заметил, что установка цели развертывания на все, что ниже iOS 13, устранит проблему (но я не хочу этого делать)

Xcode Version 12.0 beta 4 (12A8179i)

Есть ли способ исправить это без отключение генерации кода или изменение цели развертывания?

1 Ответ

0 голосов
/ 07 августа 2020

Просто работа вокруг для этой проблемы заключается в использовании строкового представления цели c необходимого пути ключа.

например, если вы хотите создайте предикат для идентификатора, тогда вместо

let ambiguousPredicate = NSPredicate(format: "%K = %@", #keyPath(User.id), id) 

вы можете написать

let workingPredicate = NSPredicate(format: "%K = %@", (\User.id)._kvcKeyPathString!, id)
...