用函数返回当前子类的实例?

时间:2016-07-30 21:40:42

标签: ios swift nsmanagedobject

我发现我没有效率地重复相同的try / catch代码,因此我想为所有NSManagedObject子类提供一个函数,以便它们可以简单地返回一个现有的对象他们的类型,如果它存在。我希望这个函数返回相关类的对象,而不仅仅是NSManagedObject。例如,如果我打电话给DataMessage.existingObject(objectID: messageID),我会收到一个DataMessage,因为那是我称之为的课程。而且我不需要每次都as! DataMessage

这是我现在的代码,这不是很正确:

extension NSManagedObject {
    class func existingObject(objectID objectID: NSManagedObjectID, context: NSManagedObjectContext) -> Self? {
        let message: NSManagedObject?

        do {
            message = try context.existingObjectWithID(objectID)
        }
        catch {
            message = nil
        }

        return message
    }
}

我好像差不多了。如何让它返回调用该函数的类的实例?

0 个答案:

没有答案