2015-11-17 2 views
0

Предположим, что у меня есть текст и массив NSRanges. Из этого я хочу создать массив подстрок. То, что я хотел бы сделать, это использовать простую функцию карты и сделано с ним:Swift - Карта для разного типа

let substrings = ranges.map { return (text as NSString).substringWithRange($0) } 

Swift не компилировать это, как он ожидает, что тип возвращаемого значения функции, которые будут применяться на карте быть таким же, как тип массива. Есть ли способ сопоставить эти значения с другим типом?

+1

Я быстро проверил ваш код на игровой площадке, и он [работал] (https://www.evernote.com/l/AOxhgT3v_71KdaLwyrrnuNShwv2eBTqVXzo). Пожалуйста, добавьте сведения об ошибке, которую вы получите в своем случае. – Moritz

+0

A (минимальный) * самодостаточный * пример, демонстрирующий проблему, был бы полезен. –

ответ

2

Закрытие map не требует выражения возврата.

let substrings = ranges.map { (text as NSString).substringWithRange($0) } 

EDIT: Операция возврата представляется неявной, если вы ее не оставляете. Поэтому ваш код должен работать так, как есть. Какая у вас ошибка?

+0

Странно. Он не работал с явным возвратом. Оставив его неявным, решила проблему. – Raphael

Смежные вопросы