gpt4 book ai didi

ios - 如何在初始化函数中将委托(delegate)设置为 self ?

转载 作者:搜寻专家 更新时间:2023-10-31 22:12:11 24 4
gpt4 key购买 nike

我有一个名为 MQTTController 的类,带有共享实例和私有(private)初始化方法

class MQTTController:NSObject, CocoaMQTTDelegate {
static let sharedInstance = MQTTController()
var clientID:String
var mqtt:CocoaMQTT
private override init() {
clientID = "xyz-" + String(ProcessInfo().processIdentifier)
mqtt = CocoaMQTT(clientID: clientID, host: "mqttcontroller.mqtt.net", port: 1883)
mqtt.username = "myusername"
mqtt.password = "mypassword"
mqtt.willMessage = CocoaMQTTWill(topic: "/will", message: "dieout")
mqtt.keepAlive = 30
mqtt.cleanSession = true
MQTTController.isConnecting = true
mqtt.delegate = self //Error at this Line "'self' used before super.init call"
mqtt.connect()
}
}

在这里我知道我可以创建另一个方法来设置委托(delegate)并调用 mqtt.connect() 但我只想知道是否有任何解决方案我不必创建和调用另一个方法。

最佳答案

错误信息告诉你需要做什么,你需要在你的 init 中调用 super.init()。

class MQTTController:NSObject, CocoaMQTTDelegate {
static let sharedInstance = MQTTController()
var clientID:String
var mqtt:CocoaMQTT
private override init() {
clientID = "xyz-" + String(ProcessInfo().processIdentifier)
mqtt = CocoaMQTT(clientID: clientID, host: "mqttcontroller.mqtt.net", port: 1883)
mqtt.username = "myusername"
mqtt.password = "mypassword"
mqtt.willMessage = CocoaMQTTWill(topic: "/will", message: "dieout")
mqtt.keepAlive = 30
mqtt.cleanSession = true
MQTTController.isConnecting = true

super.init() // This line was missing

mqtt.delegate = self
mqtt.connect()
}
}

关于ios - 如何在初始化函数中将委托(delegate)设置为 self ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42432984/

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