Ios 如何在预期类类型的Objective C api中传递Swift类

Ios 如何在预期类类型的Objective C api中传递Swift类,ios,objective-c,iphone,swift,swift2,Ios,Objective C,Iphone,Swift,Swift2,我在方案中声明了目标C中的以下API: -(id)decodeData:(NSData *)data inType:(Class)className error:(NSError **)error; 现在,我在Swift中实现了一个类,它实现了ObjC协议,如下所示: @objc class XMLDeserializer: NSObject, IDeserializer { @objc func decodeData(data: NSData!, inType className:

我在方案中声明了目标C中的以下API:

-(id)decodeData:(NSData *)data inType:(Class)className error:(NSError **)error;
现在,我在Swift中实现了一个类,它实现了ObjC协议,如下所示:

@objc class XMLDeserializer: NSObject, IDeserializer {

    @objc func decodeData(data: NSData!, inType className: AnyClass!) throws -> AnyObject {

    }
}
现在,作为协议方法调用的一部分,我的Swift类方法是从目标C类中调用的。但是,它不被称为

原因可能是什么

更新:

我有一个Communicator类,其中包含序列化程序属性。当我将自定义序列化程序对象赋予该属性时,它将调用协议方法(当成功响应到来时),如上所述

下面是我在communicator类中调用协议方法的代码:

responseObject = [self.responseSerializer decodeData:dataToDeserialize inType:self.responseType error:&err];
我已经在控制台中检查并打印了Comms类中NSData的输出,以验证我是否得到了成功的响应

唯一的问题是,我的自定义序列化程序被插入通信器,然后,我的协议方法也没有被调用

我发现了类似的问题:但这并没有解决我的问题,因为传递
MyClass.self
将在该参数中附加模块名


如果需要更多信息,请告诉我。

您希望如何调用它?谁在调用该方法?感叹号的作用是什么?该关键字在此处有何用途?显示代码您是如何在Objective中调用该方法的。您如何知道没有调用任何空方法?