';[UInt8]和#x27;还是Swift中的NSData/NSMutableData?

';[UInt8]和#x27;还是Swift中的NSData/NSMutableData?,swift,bytearray,nsdata,nsmutabledata,Swift,Bytearray,Nsdata,Nsmutabledata,简单的问题:如果我们必须分别用Swift:[UInt8]或and处理原始字节,我们应该选择什么 使用另一个的优点/缺点是什么?这取决于你的需求。在什么情况下,你会使用 NS(可变的)数据< /代码>,当代码> [UTI8] ?考虑SWIFT中的数组是值类型,这意味着,如果您没有使用UnsafePointer或unsafemeutablepointer显式传递它们的内容,则每次都会复制它们的内容。而NSData是一种引用类型,它通过+datawithbytesnopy:length:等消息提供了“

简单的问题:如果我们必须分别用Swift:
[UInt8]
或and处理原始字节,我们应该选择什么


使用另一个的优点/缺点是什么?

这取决于你的需求。在什么情况下,你会使用<代码> NS(可变的)数据< /代码>,当代码> [UTI8] ?考虑SWIFT中的数组是值类型,这意味着,如果您没有使用
UnsafePointer
unsafemeutablepointer
显式传递它们的内容,则每次都会复制它们的内容。而
NSData
是一种引用类型,它通过
+datawithbytesnopy:length:
等消息提供了“内置”控制,可以控制何时复制其有效负载,何时不复制。使用原始数据UInt8,我们可以对数学计算执行逐位操作。