在以前的Swift版本中,我有以下代码。
func myfunc(mystr: String) { if mystr.utf16Count >= 3 {
在最新版本的Swift 1.2中,我现在收到以下错误。
'utf16Count' is unavailable: Take the count of a UTF-16 view instead, i.e. count(str.utf16)
所以我将代码更改如下:
func myfunc(mystr: String) { if count(mystr.utf16) >= 3 {
但这是行不通的。我现在收到以下错误消息。
'(String.UTF16View) -> _' is not identical to 'Int16'
使用Swift 1.2获取字符串长度的正确方法是什么?
您可以使用扩展名,例如:
extension String { var length: Int { return count(self) } // Swift 1.2 }
您可以使用它:
if mystr.length >= 3 { }
或者,您可以直接通过这种方式进行计数:
if count(mystr) >= 3{ }
这也为我工作:
if count(mystr.utf16) >= 3 { }
对于 Swift 2.0:
extension String { var length: Int { return characters.count } } let str = "Hello, World" str.length //12
另一个扩展:
extension String { var length: Int { return (self as NSString).length } } let str = "Hello, World" str.length //12
如果要直接使用:
let str: String = "Hello, World" print(str.characters.count) // 12 let str1: String = "Hello, World" print(str1.endIndex) // 12 let str2 = "Hello, World" NSString(string: str2).length //12