如何使用String Key和NSManagedObjects数组作为Value约束对Dictionary的扩展

时间:2015-12-16 14:26:58

标签: swift swift-extensions

我想在Dictionary上添加一个扩展,它只适用于将字符串作为键和NSManagedObject数组作为值的字典

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

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

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

如果我只设置Value : NSManagedObject,它就有效。但不是如果它是一个阵列。有没有人知道这个的解决方法?

1 个答案:

答案 0 :(得分: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()

<强> ORIGINAL:

我认为你可以试着像Swift那样专门研究Swift中的Array类型:Array<NSManagedObject>

所以结果如下:

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