@property (strong, nonatomic) UIViewController<UITableViewDelegate> *thing;
Voglio realizzare una proprietà come in questo codice Objective-C a Swift. Così qui è che cosa ho provato:Swift Proprietà che è conforme a un protocollo e Classe
class AClass<T: UIViewController where T: UITableViewDelegate>: UIViewController {
var thing: T!
}
Questo compila. Il mio problema arriva quando aggiungo proprietà dallo storyboard. Il tag @IBOutlet
genera un errore del compilatore.
class AClass<T: UIViewController where T: UITableViewDelegate>: UIViewController {
@IBOutlet weak var anotherThing: UILabel! // error
var thing: T!
}
L'errore:
Variable in a generic class cannot be represented in Objective-C
Perchè sono attuando questo diritto? Cosa posso fare per risolvere o aggirare questo errore?
EDIT:
Swift 4, infine, ha una soluzione per questo problema. Vedi la mia risposta aggiornata.
stavo cercando di farlo un paio di mesi fa e il consenso al momento era che non era possibile. Mi piacerebbe se non fosse corretto. – AdamPro13