合并NSManagedObject类

时间:2018-08-10 21:41:22

标签: swift swift4

我有多个NSManagedObject类,我正在使用一个temp变量进行扩展,并从另一个上下文返回其实例。下面的方法可以正常工作,但是它的类繁琐很多。

我尝试扩展NSManagedObject,但是由于NSManagedObject是非泛型的,所以我无法返回特定的类类型。

是否可以将所有这些组合到一个扩展变量中,但仍然保留返回类类型的能力?

extension Account {
    var temp: Account {
        return core.temporaryContext.object(with: self.objectID) as! Account
    }
}


extension Transaction {
    var temp: Transaction {
        return core.temporaryContext.object(with: self.objectID) as! Transaction
    }
}


extension Category {
    var temp: Category {
        return core.temporaryContext.object(with: self.objectID) as! Category
    }
}

1 个答案:

答案 0 :(得分:1)

由于我们谈论的是计算属性而不是存储属性(不能通过协议添加),因此您希望将功能放入协议及其可能的范围内。

您先写一个空协议和您想要该协议实现的扩展,然后将扩展需要的内容添加到协议定义中。

application/json