Ios 如何调用swift方法,该方法的参数是来自目标C的协议
如何调用swift方法,该方法的参数是来自目标C的协议Ios 如何调用swift方法,该方法的参数是来自目标C的协议,ios,objective-c,swift,Ios,Objective C,Swift,如何调用swift方法,该方法的参数是来自目标C的协议 Class A { func sendMessage<Serializable: Encodable>(message:Serializable){ let jsonData = try! JSONEncoder().encode(message) } } 如何从Objective C调用此方法。我认为发送消息永远不会出现在已编译的TargetName Swift.h中,因为在Objective-
Class A
{
func sendMessage<Serializable: Encodable>(message:Serializable){
let jsonData = try! JSONEncoder().encode(message)
}
}
如何从Objective C调用此方法。我认为
发送消息
永远不会出现在已编译的TargetName Swift.h
中,因为在Objective-C
中没有泛型和可编码的
协议
Class A
{
func sendMessage<Serializable: Encodable>(message:Serializable){
let jsonData = try! JSONEncoder().encode(message)
}
}
当你使用
sendMessage(消息:可序列化)
您使用泛型以及可编码
协议,该协议仅在Swift中可用,在Objective-C中不可用
当您尝试访问Objective-C
文件中的Swift
函数时,编译器会创建一个Objective-C
函数的等价/对应项,因此您可以在TargetName Swift.h
文件中看到这些方法的签名
但是
Generics
和Encodable
协议在Objective-C
中不可用,因此它无法使用Generics
和Encodable
协议将Swift函数转换为Objective-C等效函数。因此,您永远不能从Objective-C文件中调用此类Swift方法您是否导入了TargetName Swift.h
我已经导入了它,并且我能够调用其他仅以字符串作为参数的方法。您是否尝试在func声明前面添加@objc?如“Objc Func sEdMeNeMe……”Saththh:如果你认为它澄清了你的问题,请考虑接受这个答案。doubt@santhosh:谢谢:)