2015-06-20 16 views
5

Tôi đã thử một sân chơi Swift. Khi tôi thử mã dưới đây, nó không hoạt động và nói với tôi 'String' does not have a member named 'Characters'. Tôi hy vọng sẽ in the number of characters in cafe is 4. Bạn có thể cho tôi lời khuyên nào không? Cảm ơn.Chuỗi không có thành viên có tên là ký tự?

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

Trả lời

13

characters là tài sản của String trong Swift "mới" đi kèm với Xcode 7 beta.

Bạn đang thể sử dụng Xcode 6.3.2 với Swift 1.2, sau đó nó là

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

Hai điều thay đổi với Swift 2.0 ở đây:

  • String nào không còn phù hợp với SequenceType, bạn có để truy cập .characters một cách rõ ràng,
  • Chức năng toàn cầu count() đã được thay thế bằng phương thức "tiện ích mở rộng giao thức" count().
+0

Nó works.Thanks . Stackoverflow là tuyệt vời :-) – David

+0

Câu trả lời là tốt. Tôi có thể hỏi thực hành tốt nhất là gì (hoặc các thực hành điển hình khác) để có được độ dài của một String trong Swift2 "mới". Bởi vì biểu thức như 'word.characters.count' có vẻ hơi phức tạp một chút. –

+0

@EricTsui: Theo như tôi biết, điều này * là * cách bạn xác định độ dài. Như bạn có thể thấy từ các ghi chú phát hành phiên bản beta Xcode 7, thuộc tính 'characters' đã được giới thiệu để phân biệt" xem sơ đồ cụm mở rộng Unicode "khá phổ biến từ" chế độ xem UTF-16 "hoặc" chế độ xem UTF-8 ". Vì vậy, 'word.utf8.count' sẽ cho bạn độ dài như một chuỗi UTF-8. –

0

Tôi nghĩ bạn đang đọc hướng dẫn Swift 2 từ iBook. Đó là tính năng mới. Và nó sẽ chỉ hoạt động trong Xcode 7.

0

Sử dụng các phương pháp vật count:

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

Với Swift 2:

word.characters.count 
0

Ngoài ra, để có được những nhân vật thực tế bạn có thể gọi:

let characters = Array(string) 

Bạn có thể sau đó chỉ cần gọi:

let length = characters.count 

Tuy nhiên, bạn cũng có thể chỉ cần sử dụng chức năng đếm nếu bạn không cần phải lặp các nhân vật hay bất cứ điều gì trong Swift 1.2:

let length = count(string) 

Trong Swift 2:

let length = string.count() 
Các vấn đề liên quan