私が共有インスタンスと、私は、デリゲートを設定し、mqtt.connect()
を呼び出すための別の方法を作成することができることを知っているが、ただ知りたいここでプライベートinitメソッドデリゲートを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
mqtt.delegate = self //Error at this Line "'self' used before super.init call"
mqtt.connect()
}
}
でMQTTControllerという名前のクラスは、そのIドンによるいかなる解決策はありき別のメソッドを作成して呼び出す必要があります。
おかげ
defer
を使用することができますが、super.init()
答えて行く必要があります –