我想通过一个Int32获得一个Int32 Pointer的值。
var result:Int32 = 32
var y = withUnsafePointer(&result, {(point:UnsafePointer<Int32>) -> UnsafePointer<Int32> in
return point
})发布于 2014-07-17 09:36:17
就像每个UnsafePointer<>一样。示例:NSErrorPointer是一个AutoreleasingUnsafePointer<NSError?>,您可以使用内存属性获取值。
使用属性memory
var errPtr: UnsafePointer<NSError> = ...
var err: NSError = errPtr.memory // not optional那么,您的示例的解决方案非常容易:
var result:Int32 = 32
var y = withUnsafePointer(&result, {(point:UnsafePointer<Int32>) -> UnsafePointer<Int32> in
return point
})
y.memory // in the playground it shows 32 :-DSwift中没有取消引用运算符,在C中是*,但这在Swift中是不可能的。
文档非常有用。
发布于 2015-09-26 12:22:51
类型UnsafePointer<Memory>有一个下标运算符。如果指针指向某物,下标0总是存在的,因此它在操场上工作,并且它的优点是参考指南有记录的下标,而不是memory属性。
var result:Int32 = 32
var y = withUnsafePointer(&result, {(point:UnsafePointer<Int32>) -> UnsafePointer<Int32> in
return point
})
y[0] // 32https://stackoverflow.com/questions/24797436
复制相似问题