首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UnsafeMutablePointer<UInt8>:有什么风险?

UnsafeMutablePointer<UInt8>:有什么风险?
EN

Stack Overflow用户
提问于 2016-06-22 15:18:55
回答 1查看 413关注 0票数 1

我正在从Objective库( UnsafeMutablePointer<UInt8> )的回调中收到其中一个

我能解析它。我还可以创建一个将其发送回库,但是:使用“不安全”类型的风险有多大?我如何避免这些风险?

另外,Objective库使用uint8_t *连接到Swift作为这个UnsafeMutablePointer<UInt8>.这对Swift interop来说是最好的选择吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-22 15:23:48

UnsafeMutablePointer是在Swift中表示C指针的方式。这是不安全的,因为指针指向的底层内存在任何时候都可能在没有Swift指针的情况下发生变化。它也没有关于它所指向的内存块大小的信息(谢谢Martin)。

如果库要求使用C类型(在本例中是指向uint8_t的指针),则必须使用UnsafeMutablePointer。否则,如果您只想表示一个数字数组,我将将NSArray中的所有NSNumber类型包装为NSNumber类型(如果指向字节流,则将NSData )包装为更容易的桥接。

您可以通过取消引用指针(如果指针为非零)并将存储在指针处的值复制到Swift应用程序中的变量,从而避免这些风险。

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

https://stackoverflow.com/questions/37972175

复制
相关文章

相似问题

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