Обходной путь для загрузки подкласса UIView с общими ограничениями c из Интерфейсного Разработчика? - PullRequest
0 голосов
/ 05 февраля 2020

Допустим, у меня есть подкласс UIView с общим ограничением c:

class CustomView<DataType: Codable>: UIView {
    var model: DataType?
}

И я хочу загрузить это представление из IB

enter image description here

При этом происходит сбой приложения: «Неизвестный класс _TtC5Test110CustomView в файле Interface Builder». Это, очевидно, связано с тем, что IB ничего не знает о типе, который ему нужно передать, чтобы ограничение generi c соответствовало требованию. Я мог бы просто создать экземпляр представления в коде и передать тип ограничения. Но мне интересно, может ли быть обходной путь, чтобы представление могло быть загружено из IB.

1 Ответ

0 голосов
/ 05 февраля 2020

Но мне интересно, может ли быть обходной путь, чтобы представление могло быть загружено из IB.

Нет, нет. IB является объективным - C Какао. Его нельзя заставить видеть или манипулировать обобщением Swift c.

IB ничего не знает о типе, который ему нужно передать для ограничения generic c, чтобы удовлетворить требованию

IB вообще ничего не знает об универсальных типах Swift. Тот факт, что вы смогли ввести CustomView в качестве класса представления, сам по себе является ошибкой.

...