描述
在 Swift 工程中, RCCoreClient 的以下方法会被优化成 add 方法,导致在调用过程中报错:
- (void)addConnectionStatusChangeDelegate:(id<RCConnectionStatusChangeDelegate>)delegate;
- (void)addReceiveMessageDelegate:(id<RCIMClientReceiveMessageDelegate>)delegate;
分析(根因分析、需求分析)
Swift 4 以下的版本对 Objective-C 的方法简化造成了这个问题。
Swift 4 及之后版本不存在该问题。
解决方案
在 Swift 工程中添加一个 OC 适配类,实现上述方法。在 Swift 工程中使用适配器的方法。
+ (void)addConnectionStatusChangeDelegate:(id<RCConnectionStatusChangeDelegate>)delegate {
[[RCCoreClient sharedCoreClient] addConnectionStatusChangeDelegate:delegate];
}
+ (void)addReceiveMessageDelegate:(id<RCIMClientReceiveMessageDelegate>)delegate {
[[RCCoreClient sharedCoreClient] addReceiveMessageDelegate:delegate];
}
调用示例:
func test() {
OCAdapter.addReceiveMessageDelegate(self)
OCAdapter.addConnectionStatusChangeDelegate(self)
}
链接
更多支持
如有疑问,欢迎提交工单。