如何通过UnsafePointer <Int32>创建Int32?

Xia*_*nng 2 ios swift

我想要得到的值Int32通过Int32 Pointer.

var result:Int32 = 32
var y = withUnsafePointer(&result, {(point:UnsafePointer<Int32>) -> UnsafePointer<Int32> in
    return point
})
Run Code Online (Sandbox Code Playgroud)

Bin*_*ian 5

它就像每个UnsafePointer <>.例如:NSErrorPointer这是一个AutoreleasingUnsafePointer<NSError?>你可以得到与内存属性的值.

使用该属性 memory

var errPtr: UnsafePointer<NSError> = ...
var err: NSError = errPtr.memory // not optional
Run Code Online (Sandbox Code Playgroud)

您的示例的解决方案非常简单:

var result:Int32 = 32
var y = withUnsafePointer(&result, {(point:UnsafePointer<Int32>) -> UnsafePointer<Int32> in
    return point
    })
y.memory // in the playground it shows 32 :-D
Run Code Online (Sandbox Code Playgroud)

在Swift中没有解除引用运算符,在C中它是aterisk *,但在Swift中是不可能的.


文档是非常有帮助的.