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

标签 swift

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

new byte[16]

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

最佳答案

使用 UnsafeMutablePointer .我想 UInt8 可能最接近 Java 的 byte,因此您可以为其中的 20 个分配空间并将它们初始化为 0,就像这样。 ..

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

编辑:感谢 vacawama

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

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

这两种方法在功能上是等价的,因为 & 会将数组转换为底层的 UnsafeMutablePointer

注意:请注意,我在第二个示例中使用了 var 关键字来定义数组,以便 & 运算符将其转换为UnsafeMutablePointer 而不是 UnsafePointer。否则,如果您试图改变内存,您将得到一个神秘的编译器错误

关于swift - 在 swift 中创建一个 16 字节的零数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36459726/

相关文章:

ios - 当 UIWebView 完成加载 Ajax 时获取回调

html - 如何将 html 文本设置为标签 Swift

IOS Swift UIImage 裁剪到给定的矩形大小

swift - 使用时区转换字符串时获取错误日期

Objective-C 到 Swift,指针转换

ios - 当他输入 CLLocation 时如何通知用户?

ios - Google 全景(街景) View 不会在 iOS 上第二次加载

ios - UITableViewCell 不显示 UILabel

ios - 安排每小时重复本地通知的问题

ios - 如何使 TabBarController 的 ViewController 上的 UIButton 使用户返回到 Swift 中最后选择的 TabBarViewController(不是当前的)