Swift string count()与NSString.长度不相等
为什么这两行给了我不同的结果Swift string count()与NSString.长度不相等,string,swift,nsstring,String,Swift,Nsstring,为什么这两行给了我不同的结果 var str=“Hello我认为这句话最能说明问题: 计数(\u1:)返回的字符计数函数并不总是与包含相同字符的NSString的length属性相同。NSString的长度基于字符串的UTF-16表示中的16位代码单元数,而不是字符串中的Unicode扩展图形集簇数。为了反映这一事实,NSStri的length属性当通过Swift字符串值访问ng时,它被称为utf16Count 这是因为Swift使用扩展的字形集群。Swift将笑脸视为一个字符,但NSStrin
var str=“Hello我认为这句话最能说明问题:
计数(\u1:)返回的字符计数函数并不总是与包含相同字符的NSString的length属性相同。NSString的长度基于字符串的UTF-16表示中的16位代码单元数,而不是字符串中的Unicode扩展图形集簇数。为了反映这一事实,NSStri的length属性当通过Swift字符串值访问ng时,它被称为utf16Count
这是因为Swift使用扩展的字形集群。Swift将笑脸视为一个字符,但NSString方法将其视为两个Unicode字符,尽管它们是“组合”的并表示一个符号。utf16Count
在Swift 1.2中不再存在,现在是count(str.utf16)
。