在Swift类中扩展通用目标C类

时间:2018-11-30 22:54:10

标签: ios objective-c swift

因此,我正在向代码库中缓慢添加更多快速文件。 假设我在目标c中上过课:

ListData<Type : CSJSONData *> : ServerData <CSListData>

我想像这样在swift类中将其子类化:

@objc class ArticlesData: ListData<Article> 

编译器给我错误:

Generic subclasses of '@objc' classes cannot have an explicit '@objc' because they are not directly visible from Objective-C
Replace '@objc ' with ''

但是我需要它@objc才能在我的objc部分中保持可用!怎么做?

1 个答案:

答案 0 :(得分:1)

来自The Swift Programming Language (4.2), Attributes

  

编译器将objc属性隐式添加到Objective-C中定义的任何类的子类中。但是,子类不能为通用类,并且不能从任何通用类继承。您可以将objc属性显式添加到满足这些条件的子类中,以指定其Objective-C名称,如下所述。

不幸的是,这很确定。