【发布时间】:2019-01-13 10:02:35
【问题描述】:
我在 Swift 4.2 的集合上使用 .map 时遇到了一些问题。 这是正在发生的事情:
我有一个这样声明的属性:
var cbPerifList:[CBPeripheral]!
后面在我写代码的时候:
_ = cbPerifList.map { (perif) -> Void in
print(perif.identifier)
}
编译器看起来很开心,没有抱怨。
但是当我写的时候:
_ = cbPerifList.map { (perif) -> Void in
print(perif.identifier)
print("HELLO")
}
编译器通过显示此消息来抱怨。
Value of type '[CBPeripheral]' has no member 'identifier'
在代码行上:print(perif.identifier)
有人能解释一下这里发生了什么吗?
-
我不明白为什么添加这行代码会有所不同。
打印(“你好”)
我希望 perif 是 CBPeripheral 类型,而不是错误消息中所说的 [CBPeripheral]。
【问题讨论】:
-
你最好在这里使用
forEach而不是map。 -
无法在操场上重现(Xcode 10.1),两个代码 sn-ps 都可以工作。另外,如果你只想打印标识符,你应该通过
for-in或forEach来做,没有理由映射数组。
标签: swift collections