Ответ 1
Когда вы выполнили миграцию, Xcode спросила о выводе @objc
, и вы, вероятно, выбрали новый тип вместо Swift3.
Возможные решения:
Использовать @objc
Используйте @objc
для каждого метода, если это необходимо, а не для всего класса.
Использовать @objcMembers
Вы можете просто использовать @objcMembers
для класса.
Применение атрибута @objcMembers к классу неявно добавляет атрибут @objc ко всем его совместимым членам Objective-C.
Написание быстрых классов и протоколов с Objective-C Поведение
Имейте в виду: поскольку применение атрибута @objc может увеличить скомпилированный размер приложения и неблагоприятно повлиять на производительность, применять атрибут @objcMembers только при объявлениях, когда каждый член должен применять атрибут @objc.
Переключить вывод на прежнее поведение
Вы также можете изменить поведение проекта в:
Build Settings
> Swift 3 @objc Inference
> On
/Off
Похожие вопросы: