2015-06-20 3 views
5

Я пытался установить Swift детская площадка. Когда я попробовал код ниже, он не работал и сказал мне 'String' does not have a member named 'Characters'. Я ожидаю напечатать the number of characters in cafe is 4. Не могли бы вы дать мне какие-нибудь советы? Благодарю.У строки нет имени с именем?

var word = "cafe" 
print("the number of characters in \(word) is \(word.characters.count)") 

ответ

13

characters является собственностью String в "новом" Swift 2, который поставляется с Xcode 7 беты.

Вы, вероятно, с помощью Xcode 6.3.2 с Swift 1.2, то

print("the number of characters in \(word) is \(count(word))") 

Две вещи изменились с Swift 2.0 здесь:

  • String уже больше не соответствуют SequenceType, у вас есть для доступа .characters явно,
  • Глобальная функция count() заменена на метод расширения протокола count().
+0

Это works.Thanks , Stackoverflow поражает :-) – David

+0

Ответ хороший. Могу ли я спросить, какова наилучшая практика (или другие типичные практики), чтобы получить длину строки в «новом» Swift2. Потому что выражение типа 'word.characters.count' кажется немного сложнее. Спасибо. –

+0

@EricTsui: Насколько я знаю, это * *, как вы определяете длину. Как видно из примечаний к бета-версии Xcode 7, было введено свойство 'characters', чтобы отличить довольно общий« Unicode Extended grapheme cluster view »от« UTF-16 view »или« UTF-8 view ». Поэтому 'word.utf8.count' даст вам длину как строку UTF-8. –

0

Я думаю, что вы читаете Swift 2 учебник от iBook. Это новая функция. И он будет работать только в Xcode 7.

0

Используйте метод подсчета символов:

println(the number of characters in \(word) is \(count(word))") 

С Swift 2:

word.characters.count 
0

Кроме того, чтобы получить фактические символы, которые вы можете позвонить:

let characters = Array(string) 

Вы могли бы тогда просто телефон:

let length = characters.count 

Однако, вы также можете просто использовать функцию подсчета, если не нужно перебирать символы или что-нибудь в Swift 1.2:

let length = count(string) 

В Swift 2:

let length = string.count() 
Смежные вопросы