当我尝试在init方法中使用CBPeripheralManagerDelegate时,我在'super.init'错误之前使用了'self'。
import CoreBluetooth
@objc
public class L2CapChannelManager : NSObject, CBPeripheralManagerDelegate {
private var peripheralManager: CBPeripheralManager?
private var deviceConnectedMethodChannel: FlutterMethodChannel
@objc
public init(deviceConnectedMethodChannel: FlutterMethodChannel) {
self.peripheralManager = CBPeripheralManager(delegate: self, queue: nil)
self.deviceConnectedMethodChannel = deviceConnectedMethodChannel
}
1条答案
按热度按时间bvjxkvbb1#
在你的对象完全初始化之前,你将
self
传递给CBPeripheralManager
的初始化器。如果你将代码改为这样,它将编译:另一种解决方案是通过使用lazy属性来延迟
CBPeripheralManager
的创建: