Способ работы map
в Swift (и в других местах) заключается в том, что он может отображать (изменять) входные данные от одного типа к другому. Так что в вашем случае вы будете вызывать map
на вашем [CBPeripheral]
, и для каждого элемента функция map
будет возвращать другое значение. Итак, если identifier
- это String
, вы получите массив строк.
Вот как это должно работать.
Однако:)
В вашем случае вы определили свою функцию отображения следующим образом:
(perif) -> Void
Это означает, что вы будете пробегать свой массив и вызывать карту с функцией, которая ничего не возвращает. Это означает, что результатом будет массив, заполненный значениями Void.
Поэтому, как предлагают другие в комментариях, если вы просто хотите просмотреть содержимое вашего cbPerifList
, вам лучше использовать цикл for in
, например
for cbPerif in cbPerifList {
print(cbPerif.identifier)
}
Если, однако, вы заинтересованы в получении массива имен ваших CBPeripherals
, вы можете сделать что-то вроде этого
let names = cbPerifList.map { $0.identifier }
Комментарий к вышесказанному: Чтобы узнать больше о том, как мы можем в итоге просто написать { $0.name }
, взгляните на главу о Closures в документации Swift или этот ответ
Надеюсь, это поможет вам.