如何使用镜像访问外部定义的类



我正在尝试Mirror这个类:

final class DeckPresentationController {
    ...
}

由 CocoaPod DeckTransition定义,所以我可以更改一些 var,但镜子没有反映我的任何内容:

import DeckTransition
let mirror = Mirror(reflecting: DeckPresentationController())
print("children: (mirror.children.first)")
print("count: (mirror.children.count) ")

给出以下编译错误:

未解析的标识符 DeckPresentationController

有什么想法怎么做吗?

您正在尝试访问在外部模块中声明的internal类。因此,使用 Mirror 也不会让你到达那里——你不能像这样使用反射来破解 Swift 访问控制;)

作为快速技巧,将类声明从:

final class DeckPresentationController

自:

open class DeckPresentationController

然后直接访问/覆盖所需的属性 - 并忘记您的黑客式Mirror;)

顺便说一下,如果你的编辑对其他人也有用,请考虑向原始CocoaPod作者提交拉取请求

相关内容

  • 没有找到相关文章

最新更新