【发布时间】:2015-10-11 02:20:46
【问题描述】:
我有一个 Broadcom BLE 外围设备广播数据,其中包括以制造商数据形式发布的序列号。当我尝试在 iOS (Swift) 中获取它时,我无法弄清楚如何将它转换为变量或常量。
我能够执行:
println("\(advertisementData)")
'advertisementData' 内置于 centralManager 函数中。在控制台中我得到:
[kCBAdvDataIsConnectable:0,kCBAdvDataLocalName:芒果,kCBAdvDataManufacturerData:]
这很好,但我需要将 kCBAdvDataManufacturerData 中的数据与字符串进行比较,如果它们相同,则让它执行一个函数。
我将如何创建访问序列号/kCBAdvDataManufacturerData 的变量?我尝试了许多不同的路线。
函数代码:
func centralManager(central: CBCentralManager!, didDiscoverPeripheral peripheral: CBPeripheral!, advertisementData: [NSObject : AnyObject]!, RSSI: NSNumber!) {
let localData = advertisementData as NSDictionary
println(localData.objectForKey(CBAdvertisementDataLocalNameKey))
var localName: NSString!
if (localData.objectForKey(CBAdvertisementDataLocalNameKey) == nil)
{
localName = ""
}
else{
localName = localData.objectForKey(CBAdvertisementDataLocalNameKey) as! NSString
if (localName == "test"){
println("Test Found!")
println("\(advertisementData)")
}
}
self.tLog(NSString(format: "Discovered %@, RSSI: %@\n", localName, RSSI))
self.discoveredPeripheral = peripheral
if (self.verboseMode())
{
self.centralManager.connectPeripheral(peripheral, options: nil)
}
}
【问题讨论】:
标签: ios iphone swift core-bluetooth