Xcode 10 beta2: невозможно вызвать инициализатор для типа «UIView» без аргументов

Я загрузил Xcode 10 beta2 и перестроил свой проект, такие коды, как:

let someView = UIView()

приходите со следующей ошибкой:

Cannot invoke initializer for type 'UIView' with no arguments

Снимок ошибки

Довольно странно. Кто-нибудь сталкивался с этими ошибками сборки при использовании Xcode 10 beta2?


person hustlzp    schedule 01.07.2018    source источник
comment
Я еще не использую Xcode 10, но обратите внимание, что UIView на самом деле никогда не определял инициализатор без аргументов. Это было унаследовано от NSObject. От вас всегда ожидали, что вы будете использовать UIView(frame:).   -  person rmaddy    schedule 01.07.2018
comment
Хм. Я не могу воспроизвести эту ошибку с помощью Xcode 10 beta 2.   -  person vacawama    schedule 01.07.2018
comment
На мой взгляд, довольно странно, что компилятор до сих пор терпел бессмысленное использование инициализатора по умолчанию ????. Поздравляем команду Swift с исправлением этого.   -  person vadian    schedule 01.07.2018
comment
Любое решение этой проблемы?   -  person ironRoei    schedule 25.09.2018
comment
@ironRoei См. мой ответ   -  person hustlzp    schedule 19.03.2019


Ответы (4)


Для меня это было обусловлено расширением NSObjectProtocol:

extension NSObjectProtocol where Self: UIView

Я исправил это, заменив NSObjectProtocol на любой другой протокол, который соответствует UIView. В моем случае это был UIAppearance:

extension UIAppearance where Self: UIView
person Serge Vysotsky    schedule 06.03.2019

попробуй это

let someView = UIView(frame: CGRect.zero)

меня устраивает

person xxxx    schedule 04.10.2018

Просто добавьте аргумент "frame": UIView(frame: CGRect.zero) (или что вам нужно)

В своем коде я настраиваю представления таким образом, а позже добавляю ограничения (которые в основном переопределяют параметры кадра).

То же самое работает для UIView, UILabel, UIScrollView и других... Для UIButtons вместо этого добавьте аргумент "type": UIButton(type: UIButtonType.custom)

person chosenandfree    schedule 07.12.2018

После нескольких часов отладки я наконец нашел проблему.

Я использую модуль SwiftTheme, после обновления до новой версии эти ошибки исчезли.

введите здесь описание изображения

См. этот коммит.

person hustlzp    schedule 19.03.2019