我有一个Go接口
type GetResponse interface { OnResult(json string) }我必须使用这个接口从OnResult订阅事件ObjC。
func Subscribe( response GetResponse){ response.OnResult("some json") }ObjC绑定给我一个相应的协议和一个基本类。
@interface GetResponse : NSObject <goSeqRefInterface, GetResponse> {
}
@property(strong, readonly) id _ref;
- (instancetype)initWithRef:(id)ref;
- (void)onResult:(NSString*)json;
@end因此,我需要在我的ObjC env中获得这个json。我怎么能这么做?
有办法解决我的问题吗?还是我只是对医生进行了不太准确的检查?请帮帮我
发布于 2019-10-19 06:39:52
我今天遇到了一个类似的问题。我认为这是gomobile的一个bug,但这毕竟是我对斯威夫特/objc的误解。https://github.com/golang/go/issues/35003
该bug的TLDR是您必须子类协议,而不是接口。如果您使用的是GetResponseProtocol,那么您可以子类化
class MyResponse: GetResponseProtocol如果在objc中,那么您可能希望直接实现GetResponse协议,而不是对接口进行子类化。
https://stackoverflow.com/questions/50815664
复制相似问题