3

我想在 Dictionary 上添加一个扩展,该扩展仅适用于以字符串为键且 NSManagedObject 数组为值的字典

理想情况下,它看起来像这样:

extension Dictionary where Key : StringLiteralConvertible, Value: [NSManagedObject] {

或者

extension Dictionary where Key : StringLiteralConvertible, Value: SequenceType<NSManagedObject> {

如果我只设置Value : NSManagedObject,它可以工作。但如果它是一个数组,则不是。有谁知道这个的解决方法?

4

1 回答 1

0

编辑:

好的,这在 Xcode 7.2 的操场上很奇怪......

extension Dictionary where Key: StringLiteralConvertible, Value: ArrayLiteralConvertible, Value.Element: NSManagedObject {
    func hello() -> String {
        return "World"
    }
}


let a: [String: [NSManagedObject]] = [:]
a.hello()

原来的:

我认为您可以尝试Array像这样专门化 Swift 中的类型:Array<NSManagedObject>

所以结果将如下所示:

extension Dictionary where Key: StringLiteralConvertible, Value: Array<NSManagedObject> {
于 2015-12-16T14:56:44.643 回答