String 快弦建筑

String 快弦建筑,string,performance,swift,String,Performance,Swift,我试图写一些Swift代码来比较我的Obj-C代码的性能 我有一个UnicodeScalar数组(一个缓冲区),我想把它转换成字符串对象 let range = _peekBuffer[_peekBufferPos .. _peekBufferPos + length] var retval = "" for c in range { retval += Character(c) } return retval 由于各种原因,性能非常糟糕,但我还没有找到更好的方法在Swift中构造字符

我试图写一些Swift代码来比较我的Obj-C代码的性能

我有一个UnicodeScalar数组(一个缓冲区),我想把它转换成字符串对象

let range = _peekBuffer[_peekBufferPos .. _peekBufferPos + length]
var retval = ""
for c in range {
    retval += Character(c)
}
return retval

由于各种原因,性能非常糟糕,但我还没有找到更好的方法在Swift中构造字符串。我将尝试使用NSString,然后可能是CFString(这有点令人失望,因为我尝试使用纯Swift编写),但我想知道是否有人遇到了“快速”创建字符串的其他选项。

我还没有找到将Unicodescalar数组转换为字符串的方法,但是,您可以先将笛卡尔转换为字符数组,然后将字符数组转换为字符串:

var characters = [Character]()
for unicodeScalar in range {
  characters.append( Character(unicodeScalar) )
}
return String( characters )

使用
NSMutableString
。您无法使用纯Swift编写任何有用的代码。如果您尝试执行的某些特定操作性能不佳。