Метод не может быть объявлен публичным, потому что его параметр использует внутренний тип - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть автоматически сгенерированные средства доступа для сущности:

//auto-generated code:
extension Entity1{
  @objc(addEntity1toEntity2Object:)
  @NSManaged public func addEntity1toEntity2Object(_ value: Entity2)
  ...
}

, и я получаю ошибку сборки:

Метод не может быть объявлен общедоступным, поскольку его параметр использует внутреннийтип

Ответы [ 4 ]

0 голосов
/ 19 октября 2018

Я нашел решение для вас: измените параметр Codegen по умолчанию для сущности с «Определение класса» на «Ручной / Нет».Возможно, вам придется очистить свой проект, прежде чем строить его снова.Параметр Codegen можно найти в инспекторе модели данных при выборе объекта.затем создайте генератор подкласса NSManagedObject из Editor-> Create подкласс NSManagedObject.

Очистить проект и построить его.

см. Варианты ответа 2: https://forums.raywenderlich.com/t/chapter-2-error-bowtie-is-ambiguous-for-type-lookup-in-this-context/22386/2

0 голосов
/ 25 сентября 2018

вы используете расширение, поэтому вы используете public в:

@NSManaged public func addEntity1toEntity2Object(_ value: Entity2)
0 голосов
/ 18 октября 2018

изменить на частный?

@NSManaged private func addEntity1toEntity2Object(_ value: Entity2)
0 голосов
/ 25 сентября 2018

Entity2 должен быть объявлен public явно:

public class Entity2{
    ...
}
...