在swift中创建一个16字节的零数组

时间:2016-04-06 18:42:30

标签: swift

我必须在我的Swift项目中初始化一个16字节的零数组。在Java中,使用以下代码很容易初始化16字节数组:

new byte[16]

我需要在Swift中使用相同的代码实现。 非常感谢您提供任何帮助。 祝你有个美好的一天!

1 个答案:

答案 0 :(得分:3)

使用UnsafeMutablePointer。我想象UInt8可能最接近Java的byte,因此您可以为其中的20个分配空间并将其初始化为0,如此... < / p>

let ptr = UnsafeMutablePointer<UInt8>.alloc(20)
ptr.initialize(0)

修改:感谢vacawama

您还可以使用Swift数组和&运算符将其转换为指针,这在语法上更好......

var arr = [UInt8](count: 20, repeatedValue: 0)
doSomething(&arr)

这两种方法在功能上是等效的,因为&会将数组转换为引擎盖下的UnsafeMutablePointer

注意:请注意,我在第二个示例中使用了var关键字来定义数组,以便&运算符将其转换为UnsafeMutablePointer UnsafePointer。否则,如果您尝试改变内存

,将会出现一个神秘的编译器错误