gpt4 book ai didi

ios - 为什么在 Swift 中打印 NSMutableArray 对象时会显示 'identifier' 的模糊使用?

转载 作者:行者123 更新时间:2023-11-28 11:11:34 27 4
gpt4 key购买 nike

我正在使用 Swift 和 BLE 进行开发。我扫描 BLE 设备并将它们添加到 NSMutableArray。当我尝试打印 NSMutableArray 中的所有对象时,它显示 Ambiguous use of 'identifier'

我在扫描回调中添加设备,如下代码所示:

var ScanMeshList:NSMutableArray?

func centralManager(central: CBCentralManager, didDiscoverPeripheral peripheral: CBPeripheral, advertisementData: [String : AnyObject], RSSI: NSNumber) {

print("peripheral name = \(peripheral.name)")
print("peripheral id = \(peripheral.identifier)")
print("peripheral rssi = \(RSSI)")

ScanMeshList?.addObject(peripheral)

}

并在点击按钮时打印 NSMutableArray 中的所有对象:

@IBAction func StopScan(sender: AnyObject) {
//for device in ScanMeshList!
for var index = 0; index < ScanMeshList!.count; index++
{
print("ScanMeshList device name = \(ScanMeshList![index].name) , id = \(ScanMeshList![index].identifier)")
}
}

但它在 print("ScanMeshList device name =\(ScanMeshList![index].name) , id =\(ScanMeshList ![index].identifier)")

我是不是遗漏了什么?

提前致谢。

最佳答案

这里有一些东西。问题可能出在编译器不知道 ScanMeshList 包含什么这一事实。由于您将它放在 NSMutableArray 中,因此没有类型信息。

如果您想在当前状态下使用它,您需要在 for 循环中转换您的对象。示例如下:

print("ScanMeshList device name = \((ScanMeshList![index] as! CBCBPeripheral).name) , id = \((ScanMeshList![index] as! CBCBPeripheral).identifier)")

但是我强烈建议利用 swifts 泛型并将 CBPeripheral 对象添加到 swift 类型化数组中,这样编译器就知道数组中每个对象的类型并避免任何类型转换。示例如下:

var scanMeshList:[CBPeripheral] = [CBPeripheral]()

func centralManager(central: CBCentralManager, didDiscoverPeripheral peripheral: CBPeripheral, advertisementData: [String : AnyObject], RSSI: NSNumber) {

print("peripheral name = \(peripheral.name)")
print("peripheral id = \(peripheral.identifier)")
print("peripheral rssi = \(RSSI)")

scanMeshList.append(peripheral)
}

func StopScan(sender: AnyObject) {
//for device in scanMeshList!
for (scanMeshListItem) in scanMeshList {
print("ScanMeshList device name = \(scanMeshListItem.name) , id = \(scanMeshListItem.identifier)")
}
}

关于ios - 为什么在 Swift 中打印 NSMutableArray 对象时会显示 'identifier' 的模糊使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34714779/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com