简体   繁体   English

Swift协议委托返回nil

[英]Swift protocol delegate returning nil

I set a breakpoint in the didConnect function to print out the value of delegate, and it is coming back as nil and I have not clue why 我在didConnect函数中设置了一个断点以打印出委托的值,并且它返回为nil ,我不知道为什么

@objc protocol KestrelDeviceConnectDelegate {
    func didConnect()
    func didDisconnect()
}

@objcMembers
class KestrelDeviceConnect: NSObject{


    static let singleton = KestrelDeviceConnect()
    public weak var delegate: KestrelDeviceConnectDelegate?

func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) {
        self.isInitialReading = false
        self.kestrelIsConnected = true
        kestrelPeripheral.discoverServices(nil)
        delegate?.didConnect()

    }

}

in viewDidLoad in my destination VC 在我的目标VC中的viewDidLoad

_kestrelVC = [[KestrelDeviceConnect alloc]init];
[_kestrelVC setDelegate:self];

The problem was initializing a new KestrelDeviceConnect instance, so instead of having _kestrelVC = [[KestrelDeviceConnect alloc]init]; 问题是初始化一个新的KestrelDeviceConnect实例,因此而不是_kestrelVC = [[KestrelDeviceConnect alloc]init]; what worked was _kestrelVC = [KestrelDeviceConnect singleton] 起作用的是_kestrelVC = [KestrelDeviceConnect singleton]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM