在Apple 文档中NSXPCInterface.setClasses(_:for:argumentIndex:ofReply:)
,对于 Swift,第一个参数描述为:
一个包含 Class 对象的 NSSet ——例如, [MyObject class]。
嗯,看起来好像有人忽略了从 Objective-C 到 Swift 的更新。对于 Swift,我认为它应该类似于
包含类类型的集合
(有人请纠正我的措辞。)但是你如何制作一个包含类类型的集合? 编译器不允许我声明Set
其成员类型不是不符合的Hashable
。这是有道理的,因为需要散列来保持成员之间的唯一性。但是 Swift 中的类类型似乎不是可散列的。在任何 Swift 文件或操场上试试这个……</p>
class Foo {}
let mySet: Set<AnyHashable>
mySet.insert(Foo)
编译器抱怨:
参数类型 'Foo.Type' 不符合预期的类型 'Hashable'
或者,更广泛地说,有人知道如何NSXPCInterface.setClasses(_:for:argumentIndex:ofReply:)
在 Swift 5 中使用吗?