首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Int32创建UnsafePointer<Int32>?

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

Stack Overflow用户
提问于 2014-07-17 07:31:31
回答 2查看 1.4K关注 0票数 2

我想通过一个Int32获得一个Int32 Pointer的值。

代码语言:javascript
复制
var result:Int32 = 32
var y = withUnsafePointer(&result, {(point:UnsafePointer<Int32>) -> UnsafePointer<Int32> in
    return point
})
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-17 09:36:17

就像每个UnsafePointer<>一样。示例:NSErrorPointer是一个AutoreleasingUnsafePointer<NSError?>,您可以使用内存属性获取值。

使用属性memory

代码语言:javascript
复制
var errPtr: UnsafePointer<NSError> = ...
var err: NSError = errPtr.memory // not optional

那么,您的示例的解决方案非常容易:

代码语言:javascript
复制
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中是不可能的。

文档非常有用。

票数 5
EN

Stack Overflow用户

发布于 2015-09-26 12:22:51

类型UnsafePointer<Memory>有一个下标运算符。如果指针指向某物,下标0总是存在的,因此它在操场上工作,并且它的优点是参考指南有记录的下标,而不是memory属性。

代码语言:javascript
复制
var result:Int32 = 32
var y = withUnsafePointer(&result, {(point:UnsafePointer<Int32>) -> UnsafePointer<Int32> in
    return point
})

y[0]  // 32
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24797436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档