首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UnsafeMutablePointer<Bytef> swift3

UnsafeMutablePointer<Bytef> swift3
EN

Stack Overflow用户
提问于 2016-09-14 09:54:58
回答 1查看 1.3K关注 0票数 0

swift3中的下面一行会出错。

代码语言:javascript
复制
out = UnsafeMutablePointer<Bytef>(data.mutableBytes)

不能使用类型“( 'UnsafeMutablePointer<Bytef>' )”的参数列表调用类型UnsafeMutableRawPointer的初始化程序

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-24 09:36:33

我不能100%确定我是否理解您的要求,但是,在swift3中处理数据指针的方式发生了一些变化:

Swift2

当我想在swift2中访问数据流中的实际字节时,您将执行一些时髦的指针填充,将数据转换为不安全的可变指针,然后指向直接引用数据流中所有字节的[UInt8]数组。

从你的要求来看,你可能在过去做过类似的事情。

Swift3

现在有两个命令withUnsafeByteswithUnsafeMutableBytes。在swift2中,我过去通过获取字节并将其转换为指针数组(类似于您正在做的事情)来处理数据。

在斯威夫特3中,你现在可以这样做了:

代码语言:javascript
复制
return data.withUnsafeBytes { (bytes: UnsafePointer<UInt8>) -> Bool in
        return 1 ==  Int((bytes[1] & 0x2) >> 1)
}

或者这个:

代码语言:javascript
复制
rawData.withUnsafeMutableBytes {
            (bytes: UnsafeMutablePointer<UInt8>) -> Void in
            bytes[0] = newValue.rawValue
        }

这就是你要找的吗?

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

https://stackoverflow.com/questions/39487515

复制
相关文章

相似问题

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