[英]How to create Int32 through UnsafePointer<Int32>?
我想通过Int32 Pointer
获取Int32
的值。
var result:Int32 = 32
var y = withUnsafePointer(&result, {(point:UnsafePointer<Int32>) -> UnsafePointer<Int32> in
return point
})
就像每个UnsafePointer <>一样。 示例: NSErrorPointer
是NSErrorPointer
AutoreleasingUnsafePointer<NSError?>
您可以使用memory属性获取值。
使用属性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 :-D
在Swift中没有解引用运算符,在C中是星号*
,但是在Swift中是不可能的。
该文档非常有帮助。
UnsafePointer<Memory>
类型具有下标运算符。 如果指针指向某物,则下标0始终存在,因此它在操场上有效,并且具有以下优点:参考指南中记录了下标,但未记录memory
属性。
var result:Int32 = 32
var y = withUnsafePointer(&result, {(point:UnsafePointer<Int32>) -> UnsafePointer<Int32> in
return point
})
y[0] // 32
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.