在我自己的可可触摸框架中
open class BLE: NSObject,CBCentralManagerDelegate,CBPeripheralDelegate {
public var myCentralManager: CBCentralManager!
public var myPeripheral: CBPeripheral!
public var writeCharacteristic: CBCharacteristic!
public var DEVICENAME: String = ""
public var result: String = ""
public func initialBLE(cm: CBCentralManager){
debugPrint("Process in initialBLE()")
self.myCentralManager = cm
myCentralManager.delegate = self
debugPrint("Process in initialBLE(), myCentralManager=\(myCentralManager)");
// here myCentralManager have a instance
}
然后我在viewcontroller中使用我自己的框架,如下所示
class ViewController: UIViewController
{
var myCentralManager:CBCentralManager!
var myPeripheral:CBPeripheral!
override func viewDidLoad() {
super.viewDidLoad()
myCentralManager = CBCentralManager()
BLE().initialBLE(cm:myCentralManager)
debugPrint("BLE().myCentralManager= \(BLE().self.myCentralManager)")
// here is the problem, BLE().myCentralManager = nil
那么如何在框架中设置myCentralManager?
答案 0 :(得分:0)
据我所知,您没有对您创建的实例进行引用。您应该持有一个引用并在同一个对象上检查myCentralManager
。
let bleInstance = BLE().initialBLE(cm:myCentralManager)
// bleInstance.myCentralManager will have your desired value
您要创建BLE
的新实例,并在不调用myCentral
的情况下查看其initialBLE()
字段。
debugPrint("BLE().myCentralManager= \(BLE().self.myCentralManager)")
您正在比较两个新鲜实例。这不是在框架中覆盖public
个变量。