问题标签 [unsafe-pointers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1559 浏览

swift - 将 nil 作为 UnsafePointer 传递

在 Swift 2.2 中,我能够将nil有效参数作为有效参数传递给需要UnsafePointer<UInt8>. 在 Swift 3 中,我不能再这样做了:

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

0 投票
0 回答
74 浏览

ios - Swift 3 中的数据、UnsafeMutablePointer 和扩展属性

在 swift 2 中,我有一个用于处理扩展属性的 NSURL 扩展,其中包括:

现在我正在尝试将其转换为 Swift 3,但 Xcode 一直在抱怨。

我把前两个函数改成了这个,但我不确定我做得对:

我必须在第一个函数中投射Data到那里吗?NSData有没有更好的方法来解决这一切?

最后一个函数被 Xcode 转换为:

但我明白了

无法使用类型为“(UnsafeMutableRawPointer!)”的参数列表调用类型“UnsafeMutablePointer”的初始化程序

而且我不知道该怎么办。Xcode 的转换也坚持NSString. 我不能在那里使用String吗?

如果还不是很明显,我不知道我在做什么,哈哈。我的原始代码基于,但我无法理解所有这些malloclength东西是如何bytes工作的。我尝试阅读文档DataUnsafeMutablePointer,但并没有太大帮助。

如果有人可以帮助我转换此代码,我将不胜感激,但即使只是为我指出正确的方向以理解所有这些,也已经是一个巨大的帮助。我不知道还能去哪里看,所有这些东西对我来说似乎真的很神秘。我最近发现的少数几个来源假设我知道很多我不知道的东西,我什至不知道要寻找什么。

谢谢!

0 投票
1 回答
832 浏览

ios - Swift 3 中的不安全指针

我知道这个问题被问了好几次,但我真的不明白。

我想从蓝牙设备(miband)中提取一个值。在 swift 2 中,它的工作方式如下:

但是在 swift 3 中它会抛出一个错误:

而且我不知道如何将其迁移到 swift 3。

0 投票
1 回答
285 浏览

swift - 如何在 Swift 3 中使用 UnsafePointer

我正在尝试使用 Martin R 制作的函数来回答这个问题:Get terminal output after a command swift

但是,UnsafePointer 行不再适用于 Swift 3,我无法弄清楚。我如何使这段代码适应 Swift 3?

ps,如果您想尝试使用该功能,您需要“导入可可”。

0 投票
1 回答
542 浏览

ios - NSMutableData 的字节到 UnsafeMutableRawPointer 不更新 mutableData 的值

我有一个结构对象。还有一个方法,它的输入是有效载荷。现在我正在创建一个名为 的 mutableData packet,它的可变字节指的是 ICMPHeader 结构。

可变字节已成功绑定到 struct,并且值也在 struct 中更新ICMPHeader

问题是更改 struct 中的值不会更改 mutable data 的值packet

如果,我试图在创建结构后重新创建数据包,那么它就会崩溃。

0 投票
2 回答
407 浏览

swift - swift3中的UnsafeMutablePointer错误

我的鳕鱼长这样

运行此代码时生成以下错误

buffer.mdata 有原始数据。我该如何解决这个问题。提前致谢

0 投票
3 回答
2370 浏览

swift - 如何在 Swift 3 中将 __NSMallocBlock__ 转换为其基础类型?

我有一个技巧可以帮助测试UIAlertController在 Swift 2.x 中有效:

这在 Swift 3.x with 下失败了fatal error: can't unsafeBitCast between types of different sizes,这让我相信可能有一种方法可以使演员表工作。任何人都可以弄清楚吗?

0 投票
0 回答
1738 浏览

swift - 在 Swift 3 中将 UnsafeBufferPointer 转换为数据

我正在尝试从 UnsafeBufferPointer 初始化数据,但是当它到达第三行时它会抛出一个 EXC_BAD_ACCESS。帮助表示赞赏。

我的最终目标是将数据位转换为某种人类可读的格式(例如,将 15 位模式转换为“F”)。我希望将数据对象中的字符串初始化为十六进制值。我愿意接受更好和正确的方法来解决这个问题。

0 投票
2 回答
683 浏览

swift - 在 swift3 中使用字节

'bytes' 不可用:改用 withUnsafeBytes

但我不知道如何使用它

0 投票
2 回答
2974 浏览

swift - 如何将 UnsafePointer<[Float]> 或将浮点数组数据转换为 Unsafe[Mutable]Pointer在斯威夫特 3 中?

我有一个来自 HDF5 文件的浮点值 () 数组floatArray,我想将此数据用作接受 Unsafe[Mutable]Pointer ( inputForFunction) 的函数的输入。我是 UnsafePointer 的新手,所以我需要别人的帮助。

我想到的一种方法是将数组存储到文件中,然后打开它并将文件描述符映射到变量的内存以用于函数的输入:

但是,它可能不是最好的实现,因为存储数据的过程似乎很耗时。

这就是为什么我正在考虑使用 UnsafePointer 将指针从floatArrayto传递inputForFunction,但我不确定如何实现它。仅供参考,我正在考虑的一种方法是withUnsafePointer直接使用方法:

或者另一种方法是使用withMemoryRebound(但以下方法不起作用):

我的问题是

  • 如何将floatArray数据的地址传递给inputForFunction
  • 如果我需要从 UnsafePointer<[Float]> 转换为 Unsafe[Mutable]Pointer,该怎么做?
  • 如果需要,如何withMemoryRebound用于此目的?我可以将地址/值分配给inputForFunction闭包内部吗?
  • 当我检查 and 的地址时floatArrayfloatArray[0]它们是不同的(这似乎与 C/C++ 不同)。应该传递到哪个地址inputForFunction