如果 Swift CustomReflectable 在单独的静态库中的单独文件中实现,则它不起作用。
// BBB.swift
public struct BBB {
public var xcv = 344
public init() {}
}
// BBB.mirror.swift
extension BBB: CustomReflectable {}
public extension BBB {
var customMirror: Mirror {
return Mirror(
self,
children: [
"xxx": 342,
"www": 999])
}
}
如何让它发挥作用?
最佳答案
根据我的经验,对于 Xcode 10 和 11 Beta 2,如果出现以下情况,Swift CustomReflectable
将无法工作:
- 它位于单独的静态库中。
- 它是使用扩展
实现的。
您可以尝试像这样将协议(protocol)构造移动到类型的主文件中,现在就可以工作了。
// Put protocol conformation here!
public struct BBB: CustomReflectable {
public var xcv = 344
public init() {}
}
public extension BBB {
var customMirror: Mirror {
return Mirror(
self,
children: [
"xxx": 342,
"www": 999])
}
}
我不知道为什么,但这有效。
关于Swift CustomReflectable 不适用于分离的静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56836458/