在Objective-c中使用泛型扩展swift类

问题描述 投票:1回答:1

在我的项目中,我有许多扩展泛型类的swift类。而现在我需要将来自objective-c类的数据发送到这些swift类。有没有办法做到这一点?

我在课前尝试过使用@objc,如下所示image 1,但它不允许我这样做。

我按照这个答案stack link。但我查看当我使用此代码运行我的应用程序时,它在Project-swift类中创建变量,如下图image 2所示,因为此处未创建变量,因此在Objective-c类中调用变量时出错。

请帮助提供更好的解决方案。

ios objective-c swift generics
1个回答
0
投票

我通过创建另一个包含协议的类来获得我的解决方案,并且我间接调用泛型扩展类。

class EntityDataTable :BaseData<EntitySw> {
}

这是通用的扩展类

而另一个我在objective-c中间接访问这个类的类是

@objc class EntityService : NSObject {
 var entityProtocol:EntityDataProtocol?

 override init() {
    super.init()
    entityProtocol = returnDataObject()
 }

  func returnDataObject() -> EntityDataTable {
    return EntityDataTable()
  }
 }

@objc protocol EntityDataProtocol{
  func addFromService(source: CWEntity)
  func getAll() -> [EntitySw]
}

然后我在Objective c类中导入了Project-swift.h文件,并生成了swift类的对象

© www.soinside.com 2019 - 2024. All rights reserved.