问题标签 [unsafemutablepointer]
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.
swift3 - 不安全可变指针迅捷3
swift3 中的后续行会出错。
无法使用类型'UnsafeMutablePointer<Bytef>'
为“(UnsafeMutableRawPointer)”的参数列表调用类型的初始化程序
swift - 如何从 Swift 3 中的不透明指针创建类型化指针?
转换为 Swift 3 我得到编译器错误:
无法使用类型为“(UnsafeMutableRawPointer?)”的参数列表调用类型“UnsafeMutablePointer”的初始化程序
尝试从不透明指针创建类型化指针时:
为什么这不起作用?
c - 在 Swift 中使用 C - strlcpy - 无法转换“UnsafeMutablePointer<_>”类型的值
我正在尝试在 Swift 3.0 中使用 strlcpy,但不断收到错误消息“无法将 'UnsafeMutablePointer<_>' 类型的值转换为预期的参数类型 'UnsafeMutablePointer!'”
这是我的代码
其中 VidyoClientInEventLogIn 是:
swift3 - Swift3 更改为 UnsafeMutablePointer
我正在将我的一个 iOS 应用程序移植到 Swift3/Xcode8。我嵌入了一个 C 库,它需要一个类型的函数参数:
在 Swift2.3 中,这被翻译成:
所以我可以像这样在我的快速代码中声明该指针:
在我使用 Swift3 更新到 Xcode8 之前,这一直很好,现在我收到编译器错误:
我可以帮助我了解 swift3 的变化吗?这个可选,可选,隐式未包装可选(?)在这种情况下意味着什么,我如何声明具有这种类型的指针?
swift3 - swift 3 如何使用 CFArrayCreate
我想从一个数组创建一个 CFArray
以前在 Swift 2 中,我能够做到这一点:
现在在 Swift 3 CFArrayCreate 中期望UnsafeMutablePointer<UnsafeRawPointer?>!
作为第二个参数
我尝试这样做的一种方法是:
然而,这将创建 CFArray 元素为 [rawPointer, 垃圾, 垃圾, 垃圾的值] 而不是 [0, 1, 2, 3]
我将如何将这个UnsafeMutablePointer<UnsafeRawPointer?>!
参数从数组中取出?
uibezierpath - Swift 3 中的 UnsafeMutablePointer 用法
我正在为 UIBezierPath 使用以下扩展:
这是来自网站:
但是,这与 Swift 3 中断了以下行:
显示以下错误:
我知道这与 Swift 3 的变化有关:UnsafeRawPointerMigration
但是,我不太确定将其移植到 Swift 3 的最佳方法。您能否在这方面提供一些帮助,并为上述扩展提供更新代码?
ios - 如何将数组转换为 UnsafeMutablePointer斯威夫特 3.0?
这是我在以前版本的 Swift 中的可行代码:
在 Swift 3.0 中更改后,我必须将键和值数组转换UnsafeMutablePointer<UnsafeRawPointer?>
为创建 CFDictionary。
这边走:
给出错误访问错误。
在阅读文档后,我正在尝试编译此代码:
但无法推断出错误 通用参数“实例”出现在Unmanaged.passUnretained( array ).toOpaque()行中
我现在不知道如何以编程方式创建 CFDictionary。
swift - Swift 中的相互非可选引用循环
考虑以下用例:
在某些游戏的模型中,您有一个Player
类。每个Player
人都有一个unowned let opponent: Player
代表他们正在对抗的对手。这些总是成对创建的,并且 aPlayer
必须总是有 aopponent
因为它是非可选的。但是,这很难建模,因为必须先创建一个玩家,而创建第二个玩家之前,第一个玩家不会有对手!
通过一些丑陋的黑客攻击,我想出了这个解决方案:
效果很好。但是,我很难opponent
变成一个常数。一种解决方案是创建opponent
一个不带 a 的计算属性set
,由 a 支持var
,但我想避免这种情况。
我试图用 Swift 指针做一些黑客攻击,并想出了:
但这给出了一个段错误。此外,当使用 进行调试时lldb
,我们可以看到在p1
初始化之后,我们有:
但在函数结束时,lldb 显示:
所以p1
正确地指向p2
,但p2
仍然指向旧的p1
。更何况,p1
居然换了地址!
我的问题有两个:
是否有一种更清洁、更“快捷”的方式来创建这种相互非可选引用的结构?
如果不是,我对
UnsafeMutablePointer
Swift 中的 s 等有什么误解,导致上述代码不起作用?
c - C 类型浮点的 Swift 3 UnsafeMutablePointer 初始化**
在 Swift 3 中,我需要将数据发送到接受float **
输入的 C 对象。
在 Swift 2 中,我曾经声明 a UnsafeMutablePointer< UnsafeMutablePointer<Float32>>
,构造一个 swift Array(仅用于 init!),然后将其传递给指针,并且它起作用了:
现在在 Swift 3 中这一切都被打破了!
float**
传递 C 样式并初始化它的最快捷方式是什么?- 在 a 中分配值的最佳方法是
UnsafeMutablePointer< UnsafeMutablePointer<T>>
什么?
文档说T **
应该使用AutoreleasingUnsafeMutablePointer<T>
,但我实际上从未设法构建一个!
请注意,我实际上并不关心上面示例中的数组!如果我可以直接使用已知容量初始化指针,我会的。
注意:UnsafeRawPointer 的预期用例部分描述了有用的情况,例如 C 数组和 C 缓冲区,但是为上述构造转换这些方法并不明显!
swift - Swift:无法将“UnsafeMutablePointer”类型的值转换为预期的参数类型“UnsafeMutablePointer”
更新到 Swift 3 后,我的代码有点问题。在转换之前我有这个代码:
我把它转换成这个代码,在第三行我得到一个错误
...无法将“UnsafeMutablePointer”类型的值转换为预期的参数类型“UnsafeMutablePointer”
有谁知道如何摆脱这个?