问题标签 [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.
swift - 将 nil 作为 UnsafePointer 传递
在 Swift 2.2 中,我能够将nil
有效参数作为有效参数传递给需要UnsafePointer<UInt8>
. 在 Swift 3 中,我不能再这样做了:
我现在需要将函数中的指针声明指定为可选吗?
ios - Swift 3 中的数据、UnsafeMutablePointer 和扩展属性
在 swift 2 中,我有一个用于处理扩展属性的 NSURL 扩展,其中包括:
现在我正在尝试将其转换为 Swift 3,但 Xcode 一直在抱怨。
我把前两个函数改成了这个,但我不确定我做得对:
我必须在第一个函数中投射Data
到那里吗?NSData
有没有更好的方法来解决这一切?
最后一个函数被 Xcode 转换为:
但我明白了
无法使用类型为“(UnsafeMutableRawPointer!)”的参数列表调用类型“UnsafeMutablePointer”的初始化程序
而且我不知道该怎么办。Xcode 的转换也坚持NSString
. 我不能在那里使用String
吗?
如果还不是很明显,我不知道我在做什么,哈哈。我的原始代码基于此,但我无法理解所有这些malloc
和length
东西是如何bytes
工作的。我尝试阅读文档Data
等UnsafeMutablePointer
,但并没有太大帮助。
如果有人可以帮助我转换此代码,我将不胜感激,但即使只是为我指出正确的方向以理解所有这些,也已经是一个巨大的帮助。我不知道还能去哪里看,所有这些东西对我来说似乎真的很神秘。我最近发现的少数几个来源假设我知道很多我不知道的东西,我什至不知道要寻找什么。
谢谢!
ios - Swift 3 中的不安全指针
我知道这个问题被问了好几次,但我真的不明白。
我想从蓝牙设备(miband)中提取一个值。在 swift 2 中,它的工作方式如下:
但是在 swift 3 中它会抛出一个错误:
而且我不知道如何将其迁移到 swift 3。
swift - 如何在 Swift 3 中使用 UnsafePointer
我正在尝试使用 Martin R 制作的函数来回答这个问题:Get terminal output after a command swift
但是,UnsafePointer 行不再适用于 Swift 3,我无法弄清楚。我如何使这段代码适应 Swift 3?
ps,如果您想尝试使用该功能,您需要“导入可可”。
ios - NSMutableData 的字节到 UnsafeMutableRawPointer 不更新 mutableData 的值
我有一个结构对象。还有一个方法,它的输入是有效载荷。现在我正在创建一个名为 的 mutableData packet
,它的可变字节指的是 ICMPHeader 结构。
可变字节已成功绑定到 struct,并且值也在 struct 中更新ICMPHeader
。
问题是更改 struct 中的值不会更改 mutable data 的值packet
。
如果,我试图在创建结构后重新创建数据包,那么它就会崩溃。
swift - swift3中的UnsafeMutablePointer错误
我的鳕鱼长这样
运行此代码时生成以下错误
buffer.mdata 有原始数据。我该如何解决这个问题。提前致谢
swift - 如何在 Swift 3 中将 __NSMallocBlock__ 转换为其基础类型?
我有一个技巧可以帮助测试UIAlertController
在 Swift 2.x 中有效:
这在 Swift 3.x with 下失败了fatal error: can't unsafeBitCast between types of different sizes
,这让我相信可能有一种方法可以使演员表工作。任何人都可以弄清楚吗?
swift - 在 Swift 3 中将 UnsafeBufferPointer 转换为数据
我正在尝试从 UnsafeBufferPointer 初始化数据,但是当它到达第三行时它会抛出一个 EXC_BAD_ACCESS。帮助表示赞赏。
我的最终目标是将数据位转换为某种人类可读的格式(例如,将 15 位模式转换为“F”)。我希望将数据对象中的字符串初始化为十六进制值。我愿意接受更好和正确的方法来解决这个问题。
swift - 在 swift3 中使用字节
'bytes' 不可用:改用 withUnsafeBytes
但我不知道如何使用它
swift - 如何将 UnsafePointer<[Float]> 或将浮点数组数据转换为 Unsafe[Mutable]Pointer在斯威夫特 3 中?
我有一个来自 HDF5 文件的浮点值 () 数组floatArray
,我想将此数据用作接受 Unsafe[Mutable]Pointer ( inputForFunction
) 的函数的输入。我是 UnsafePointer 的新手,所以我需要别人的帮助。
我想到的一种方法是将数组存储到文件中,然后打开它并将文件描述符映射到变量的内存以用于函数的输入:
但是,它可能不是最好的实现,因为存储数据的过程似乎很耗时。
这就是为什么我正在考虑使用 UnsafePointer 将指针从floatArray
to传递inputForFunction
,但我不确定如何实现它。仅供参考,我正在考虑的一种方法是withUnsafePointer
直接使用方法:
或者另一种方法是使用withMemoryRebound
(但以下方法不起作用):
我的问题是
- 如何将
floatArray
数据的地址传递给inputForFunction
? - 如果我需要从 UnsafePointer<[Float]> 转换为 Unsafe[Mutable]Pointer,该怎么做?
- 如果需要,如何
withMemoryRebound
用于此目的?我可以将地址/值分配给inputForFunction
闭包内部吗? - 当我检查 and 的地址时
floatArray
,floatArray[0]
它们是不同的(这似乎与 C/C++ 不同)。应该传递到哪个地址inputForFunction
?