【问题标题】:NSManagedObject like Generic objectNSManagedObject 类似通用对象
【发布时间】:2016-10-12 13:28:07
【问题描述】:

可能有这样的东西。

public class Request<T: NSFetchRequestResult> : NSManagedObject {
    @NSManaged public var id: Int16
    @NSManaged public var fetchRequest: NSFetchRequest<T>?
}
...
public class Ticker: NSManagedObject {

}

但是当我调用context.insertNewObjectForEntity(forName: "Request")时,我无法获得实际类型

class func requestForLCMain() -> Request<Ticker>? {
    let context = DataManager.sharedInstance.mainContext
    let id = RequestId.ticker
    let fetchRequest: NSFetchRequest<Request<Ticker>> = Request.fetchRequestFunc()
    fetchRequest.predicate = NSPredicate(format: "id = %@", id.rawValue)
    fetchRequest.fetchBatchSize = 1
    do {
        if let request = try context.fetch(fetchRequest).first {
            return request
        } else {
            let newRequest = context.insertNewObjectForEntity(forName: "Request") as? Request<Ticker> // ? returns nil
            newRequest.fetchRequest = ... // ?
            return newRequest
        }
    } catch let error {
        print(error)
    }
    return nil
}

我可以做点什么吗,否则使用通用 NSManagedObject 是错误的方式?

【问题讨论】:

    标签: ios swift generics core-data swift3


    【解决方案1】:

    请查看此answer,我认为它准确地说明了您想要实现的目标。

    【讨论】:

    • 这不是我要问的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    相关资源
    最近更新 更多