Я ищу возможность извлечь экземпляр подкласса UIView из Nib.
Я хотел бы иметь возможность вызывать MyCustomView.instantiateFromNib () и иметь экземпляр MyCustomView. Я почти готов просто перенести рабочий код Objective-C, который у меня есть, через заголовок моста, но решил, что сначала попробую идиоматический подход. Это было два часа назад.
extension UIView {
class func instantiateFromNib() -> Self? {
let topLevelObjects = NSBundle.mainBundle().loadNibNamed("CustomViews", owner: nil, options: nil)
for topLevelObject in topLevelObjects {
if (topLevelObject is self) {
return topLevelObject
}
}
return nil
}
}
Теперь if (topLevelObject is self) {
неверно, потому что "Ожидаемый тип после 'is'". То, что я попробовал после этого, показывает многое из того, что я не понимаю в системе типов Swift.
if (topLevelObject is Self) {
if (topLevelObject is self.dynamicType) {
if (topLevelObject is self.self) {
Любое понимание приветствуется.