@property (strong, nonatomic) UIViewController<UITableViewDelegate> *thing;
Я хочу реализовать свойство вроде этого кода Objective-C в Swift. Итак, вот что я пробовал:
class AClass<T: UIViewController where T: UITableViewDelegate>: UIViewController {
var thing: T!
}
Это компилируется. Моя проблема возникает, когда я добавляю свойства из раскадровки. Тег @IBOutlet
генерирует ошибку компилятора.
class AClass<T: UIViewController where T: UITableViewDelegate>: UIViewController {
@IBOutlet weak var anotherThing: UILabel! // error
var thing: T!
}
Ошибка:
Variable in a generic class cannot be represented in Objective-C
Я реализую это право? Что я могу сделать, чтобы исправить или обойти эту ошибку?
EDIT:
Swift 4, наконец, имеет решение этой проблемы. См. Мой обновленный ответ.