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.

questionAnswers(4)

yourAnswerToTheQuestion