【发布时间】:2019-03-16 02:34:02
【问题描述】:
如果我想获得一个变量的 unsafemutablerawpointer。 然而,如果不创建副本或缓冲区,那么最好/有效的方法是什么?
下面的例子有效!
var number:UInt = 5
let numberPointer = UnsafeMutableRawPointer(&number)
var pointer:UnsafeMutablePointer<UInt8> = numberPointer.bindMemory(to: UInt8.self, capacity: size)
pointer[0] = 88
print(numberPointer) // 88
来自苹果的文档:
【问题讨论】:
-
正如您在 Apple 文档中找到的那样。您的示例似乎在某些特定条件下有效。不幸的是,这种情况没有记录在案并导致未定义的行为。你想要什么答案? 否,这不安全。 或者其他一些安全的方法?
-
是的,还有什么其他安全方法可以有效地从任何变量(例如 float、int、uint、int8 等)中提取 UnsafeMutableRawPointer。
标签: swift unsafemutablepointer