我正在尝试将 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(使用前将#替换为@)