【发布时间】:2016-10-03 03:47:26
【问题描述】:
我从 swift 2 转换为 swift 3 后,下面提到的行弹出错误
let value = UnsafePointer<UInt32>(array1).pointee
“init”不可用:使用“withMemoryRebound(to:capacity:_)”临时将内存视为另一种布局兼容类型。
在 swift2 中是这样的
let value = UnsafePointer<UInt32>(array1).memory
有人可以解释一下吗? 抱歉,我对 swift3 很陌生
修改后
let abc = UnsafePointer<UInt32>(array1).withMemoryRebound(to: <#T##T.Type#>, capacity: <#T##Int#>, <#T##body: (UnsafeMutablePointer<T>) throws -> Result##(UnsafeMutablePointer<T>) throws -> Result#>)
但仍然应该将什么值放入变量中?对不起,我已经搜索了但是太糟糕了我找不到解决方案
【问题讨论】:
-
Results from C functions that return nullable pointers must be explicitly unwrapped before accessing the pointee property (formerly memory) or subscript elements. Optional chaining syntax works well here, e.g. result?.pointee = sum.可能会有所帮助...swift.org/migration-guide -
请展示你真正想要做什么。
-
array1是什么类型的?UnsafeRawPointer? -
@LinShiwei var array1 = [UInt8](count4: 重复 0)