【发布时间】:2014-10-31 00:44:05
【问题描述】:
使用 Swift,我有一个自定义类,它包装了 CBCentralManager 类,如下所示:
import UIKit
import CoreBluetooth
protocol vaBeanDelegate
{
}
class vaBean: CBCentralManager, CBCentralManagerDelegate {
override init() {
println("bean manager initialised")
super.init()
self.delegate = self
}
func centralManager(central: CBCentralManager!, didDiscoverPeripheral peripheral: CBPeripheral!, advertisementData: [NSObject : AnyObject]!, RSSI: NSNumber!) {
println("discovered peripheral(s)")
}
func centralManagerDidUpdateState(central: CBCentralManager!) {
switch (central.state) {
case .PoweredOff:
println("hardware is powered off")
case .PoweredOn:
println("hardware is powered on and ready")
//centralManager.scanForPeripheralsWithServices(nil, options: nil)
case .Resetting:
println("hardware is resetting")
case .Unauthorized:
println("state is unauthorized")
case .Unknown:
println("state is unknown");
case .Unsupported:
println("hardware is unsupported on this platform");
}
}
func centralManager(central: CBCentralManager!, didConnectPeripheral peripheral: CBPeripheral!) {
println("didConnectPeripheral")
}
func searchForNewBeans() {
println("searching for new beans...")
self.scanForPeripheralsWithServices(nil, options: nil)
}
}
类初始化,然后我可以调用searchForNewBeans 函数,但我没有收到来自didUpdateState 或didDiscoverPeripheral 函数的任何响应。我怀疑这是因为我的新班级不知道它应该是这些的接收者,但是我将如何以及在哪里指定呢?我ViewController中的调用代码如下:
import UIKit
class ViewController: UIViewController {
var myBean: vaBean!
override func viewDidLoad() {
super.viewDidLoad()
println("blueToothTest v1.00")
println("opening bluetooth connection ...")
myBean = vaBean()
myBean.searchForNewBeans()
}
override func didReceiveMemoryWarning() {super.didReceiveMemoryWarning()}
}
我当前执行时的日志如下:
blueToothTest v1.00
打开蓝牙连接...
bean 管理器已初始化
正在寻找新的豆子...
【问题讨论】:
标签: ios inheritance swift