Propriedade Swift que está em conformidade com um Protocolo e Classe
@property (strong, nonatomic) UIViewController<UITableViewDelegate> *thing;
Eu quero implementar uma propriedade como neste código Objective-C no Swift. Então, aqui está o que eu tentei:
class AClass<T: UIViewController where T: UITableViewDelegate>: UIViewController {
var thing: T!
}
Isso compila. Meu problema surge quando adiciono propriedades do storyboard. o@IBOutlet
tag gera um erro do compilador.
class AClass<T: UIViewController where T: UITableViewDelegate>: UIViewController {
@IBOutlet weak var anotherThing: UILabel! // error
var thing: T!
}
O erro:
Variable in a generic class cannot be represented in Objective-C
Estou implementando esse direito? O que posso fazer para corrigir ou contornar esse erro?
EDITAR:
O Swift 4 finalmente tem uma solução para esse problema. Veja minha resposta atualizada.