Ответ 1
Он всегда +
. Каждый раз, когда люди жалуются на взрывоопасные времена компиляции, я спрашиваю: "Приковали ли вы +
?"? И это всегда да. Это потому, что +
настолько сильно перегружен. Тем не менее, я думаю, что это значительно лучше в Xcode 8, по крайней мере, в моем быстром эксперименте.
Вы можете резко ускорить это, не требуя var
, объединив массивы, а не добавляя их:
let resultsArray = [hashTagParticipantCodes,
prefixParticipantCodes,
asterixParticipantCodes,
attPrefixParticipantCodes,
attURLParticipantCodes]
.joinWithSeparator([]).map{$0}
.map{$0}
в конце - это принудительно вернуть его в массив (если вам это нужно, иначе вы можете просто использовать ленивый FlattenCollection). Вы также можете сделать это следующим образом:
let resultsArray = Array(
[hashTagParticipantCodes,
prefixParticipantCodes,
asterixParticipantCodes,
attPrefixParticipantCodes,
attURLParticipantCodes]
.joinWithSeparator([]))
Но проверьте Xcode 8; Я считаю, что это хотя бы частично исправлено (но использование .joined()
все еще намного быстрее, даже в Swift 3).