Swift CustomReflectable在单独的静态库中不起作用

时间:2019-07-01 13:20:16

标签: swift reflection customreflectable

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])
    }
}

如何使其工作?

1 个答案:

答案 0 :(得分:0)

根据我的经验,在使用Xcode 10和11 Beta 2的情况下,Swift CustomReflectable不起作用 -在单独的静态库中。 -使用extension实现。

您可以像这样尝试将协议构型移动到类型的主文件,并且现在可以使用。

// 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])
    }
}

我不知道为什么,但是可以。