Unmanaged.passUnretained(self).toOpaque() 到 Swift 3

Posted

技术标签:

【中文标题】Unmanaged.passUnretained(self).toOpaque() 到 Swift 3【英文标题】:Unmanaged.passUnretained(self).toOpaque() to Swift 3 【发布时间】:2016-06-24 03:24:35 【问题描述】:

我有以下错误:

图片中的代码行是这样的:

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

我不确定如何解决这个问题。我确实调查过:

https://github.com/apple/swift-evolution/blob/master/proposals/0017-convert-unmanaged-to-use-unsafepointer.md

但是,我不确定如何正确修复错误。

有什么帮助吗?

【问题讨论】:

请显示代码,而不是代码图片。谢谢! ***.com/questions/30786883/… 的副本? 【参考方案1】:
UnsafeMutableRawPointer(Unmanaged.passUnretained(self).toOpaque())

为我工作

【讨论】:

【参考方案2】:

这似乎有效:

context.info = UnsafeMutablePointer(OpaquePointer(bitPattern: Unmanaged.passUnretained(self)))

【讨论】:

您是否也有实现逆向的方法,即以类似的方式从context.info 中提取mySelf

以上是关于Unmanaged.passUnretained(self).toOpaque() 到 Swift 3的主要内容,如果未能解决你的问题,请参考以下文章