问题标签 [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 - 不安全可变指针: 有什么风险?
我在来自 Objective-C 库的回调中收到其中一个:UnsafeMutablePointer<UInt8>
我能够解析它。我也可以创建一个将其发送回图书馆,但是:使用“不安全”类型有什么风险?我如何避免这些风险?
此外,Objective-C 库正在使用uint8_t *
哪些到 Swift 的桥,因为这UnsafeMutablePointer<UInt8>
……这是 Swift 互操作的最佳选择吗?
swift - 通用类型 `UnsafeMutablePointer 的扩展`
我想创建一个UnsafeMutablePointer
仅影响UnsafeMutablePointer<UInt8>
...的扩展程序
我知道这些说明是相关的,但我不确定如何:
扩展泛型类型时,您不提供类型参数列表作为扩展定义的一部分。相反,原始类型定义中的类型参数列表在扩展的主体中可用,并且原始类型参数名称用于引用原始定义中的类型参数。
基本上,我正在尝试使用这种方法:
在self
没有UnsafeMutablePointer<UInt8>
作为参数的情况下采取行动......这可能吗?
swift - Swift 中对 UnsafeMutablePointer 进行类型转换的惯用方式到非空类型数组?
许多 C/Obj-C API 处理指向 void 的指针。在 swift 中,这些类型通常表示为 UnsafeMutablePointer 或 UnsafePointer(对于 const void*)。Swift 中将这些值重新解释为打包数据数组的典型方法是什么,例如 [Float] 或 [UInt8] ?
swift - 我是否需要释放 UnsafeBufferPointer 或在缓冲区指针的起始内存位置使用的 UnsafePointer?
考虑这个NSData
将对象序列NSData
化为十六进制字符串的扩展:
如果 anUnsafeBufferPointer
是非拥有指针,这是否意味着我不需要(或无法)显式调用销毁?如果我UnsafePointer
从对象字节的内存中创建一个NSData
,是否需要确保在复制缓冲区后销毁该指针?
swift - 如何创建 UnsafePointer从现有的 CGRect
如何创建 UnsafePointer?尝试让 mediaBoxPtr = UnsafePointer(mediaBox) 但失败
swift - 如何从 UnsafeMutableRawPointer 中获取字节?
如何访问由 C API(Core Audio 等)传递给 Swift 函数的 UnsafeMutableRawPointer(Swift 3 中的新功能)指向的内存中的字节(或 Int16、浮点数等)?
swift3 - Swift 3 UnsafePointer($0) 不再在 Xcode 8 beta 6 中编译
我的代码片段如下……:
...不再编译,出现以下我不明白的错误:
该怎么做才能修复它?
swift - 在 Swift 中转换为不同的 C 结构不安全指针
我想从 Swift调用socket
Posix套接字函数。很简单——它需要s,但会导致问题,因为我有一个指针,但它需要一个指针。在 C 中,这将是一个演员表,例如:bind
socket
Int32
bind
sockaddr_in
sockaddr
这是 Swift 中的一个尝试:
该bind
行无法编译:无法将“sockaddr_in”类型的值转换为预期的参数类型“sockaddr”
如何投射指针?
c# - 声明一个指向类定义结构的指针,其中类是通用的
在 C# 中使用unsafe
orfixed
关键字时,您可以定义指向非托管类型的指针,例如byte*
int*
等。您还可以定义指向仅包含非托管类型的任何结构的指针,例如:
但是,如果在泛型类定义中定义,我会得到struct
error 。这种限制的原因是什么?CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type
更新:仅当包含类是泛型时才会发生此错误。我仍然看不出错误的原因 - 编译器可以看到该结构将始终包含非托管类型,因为它不引用泛型类型T
。
注意:在最终版本中,此功能似乎已添加到 C#:请参阅GitHub 上的此问题。
swift3 - Swift 3 - 将 c 结构 sockaddr_in 转换为 CFData
我需要你的帮助,这段代码在 Swift 3 中不再编译
我必须修复“withUnsafePointer”行,但我不知道怎么做?
我尝试过这样的事情
编译器说我必须使用 withMemoryRebound 但如何?谢谢