无法调用类型“UnsafeMutablePointer”的初始值设定项

2024-06-19

我正在尝试将 Reachability.swift 更新为 swift 3.0,但在将 Reachability 实例传递给回调函数时遇到问题。

这是我的片段: * 请注意 self = 可达性等级

var context = SCNetworkReachabilityContext(version: 0, info: nil, retain: nil, release: nil, copyDescription: nil)

context.info = UnsafeMutablePointer(Unmanaged.passUnretained(self).toOpaque())

编译器抛出错误并提示:

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

指针转换受限:使用 '.assumeMemoryBound(to:)' 或 '.bindMemory(to:capacity:)' 将内存视为一种类型。

'UnsafeMutablePointer<_>' 的重载存在于这些部分 匹配参数列表:(RawPointer)、(OpaquePointer)、 (不透明指针?),(不安全可变指针), (不安全可变指针?)

据我了解,我需要转换 self 类型open class Reachability: NSObject到 UnsafeMutablePointer 但我不知道如何继续。


检查类型info财产来自最新参考 https://developer.apple.com/reference/systemconfiguration/scnetworkreachabilitycontext/1514901-info:

宣言

var info: UnsafeMutableRawPointer?

以及类型toOpaque()已经成为UnsafeMutableRawPointer。 (我无法找到最新的 Apple 文档,但您可以在 Xcode 的“快速帮助”窗格中轻松查看。)

您无需转换:

    context.info = Unmanaged.passUnretained(self).toOpaque()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法调用类型“UnsafeMutablePointer”的初始值设定项 的相关文章

随机推荐