首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将零作为UnsafePointer<UInt8>传递

将零作为UnsafePointer<UInt8>传递
EN

Stack Overflow用户
提问于 2016-10-11 14:28:31
回答 1查看 1.8K关注 0票数 4

在SWIFT2.2中,我能够将nil作为一个有效的参数传递给一个需要UnsafePointer<UInt8>的函数。在Swift 3中,我再也不能这样做了:

代码语言:javascript
复制
func myFuncThatTakesAPointer(buffer: UnsafePointer<UInt8>, length: Int) { /** **/ }

myFuncThatTakesAPointer(buffer: nil, length: 0)

操场执行失败:错误:Xcode8游乐场- is .游乐场:62:33:错误:0与预期的参数类型'UnsafePointer‘myFuncThatTakesAPointer不兼容(缓冲区:零,长度: 0) ^

现在是否需要将函数中的指针声明指定为可选的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-11 14:31:07

现在是否需要将函数中的指针声明指定为可选的?

一句话,是。来自发布说明

类型UnsafePointer、UnsafeMutablePointer、AutoreleasingUnsafeMutablePointer、OpaquePointer、Selector和NSZone现在表示不可空的指针--也就是说,从未为零的指针。现在可以使用可选指针(例如UnsafePointer<Int>? )来表示可空指针。

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

https://stackoverflow.com/questions/39979619

复制
相关文章

相似问题

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