gpt4 book ai didi

iOS swift 使用选择器调用 Objective-C 方法失败

转载 作者:行者123 更新时间:2023-11-30 12:37:40 26 4
gpt4 key购买 nike

我正在使用 Swift 3iOS 开发一个应用程序,需要一个 Objective-C 库来连接一些服务。该库具有需要回调函数的方法,该方法有效,因为在库的日志中我可以看到数据已接收。

问题是下一个,当我将 nil 传递给选择器时,我没有任何问题,但是当我放置函数时,我收到下一个错误:

2017-03-08 12:30:51.792 ios-example[1095:15243] *** NSForwarding: warning: object 0x608000227d20 of class 'ios-example.ConnectionSettings' does not implement methodSignatureForSelector: -- trouble ahead
Unrecognized selector -[ios-example.ConnectionSettings performSelectorOnMainThread:withObject:waitUntilDone:]

代码是这样的:

导入基础

class ConnectionSettings {

var _service : ServiceCall?

@objc func getName(message : StringMessage) {
print("name : \(message.data)")
}

init() {
self._service = Services.makeService(RB_SERVICE_NAME,
responseTarget: self,
selector: #selector(self.getName)))!)
self._service.send();
}
}

我认为这个问题很容易解决,但我不知道该怎么做。有人可以帮助我吗?

谢谢:)

最佳答案

错误消息告诉您库最终调用 -[ios-example.ConnectionSettings PerformSelectorOnMainThread:withObject:waitUntilDone:] 这是在 NSObject 上定义的 Objective-C 选择器。您的类必须是 NSObject

的子类
class ConnectionSettings: NSObject { ... }

编辑

您遇到的第二个问题是传递给 getName 方法的对象没有 data 选择器。事实上,看起来您正在传递一个 Service 对象。

关于iOS swift 使用选择器调用 Objective-C 方法失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42670916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com