gpt4 book ai didi

swift - 如何将类型应用于 NSFetchRequest 实例?

转载 作者:IT王子 更新时间:2023-10-29 04:56:24 25 4
gpt4 key购买 nike

在 Swift 2 中,以下代码有效:

let request = NSFetchRequest(entityName: String)

但在 Swift 3 中它给出了错误:

Generic parameter "ResultType" could not be inferred

因为 NSFetchRequest 现在是一个通用类型。他们在他们的文件中写道:

let request: NSFetchRequest<Animal> = Animal.fetchRequest

所以如果我的结果类是 Level 我应该如何正确请求?

因为这不起作用:

let request: NSFetchRequest<Level> = Level.fetchRequest

最佳答案

let request: NSFetchRequest<NSFetchRequestResult> = Level.fetchRequest()

let request: NSFetchRequest<Level> = Level.fetchRequest()

取决于你想要的版本。

您必须指定泛型类型,否则方法调用是不明确的。

第一个版本是为 NSManagedObject 定义的,第二个版本是为每个使用扩展的对象自动生成的,例如:

extension Level {
@nonobjc class func fetchRequest() -> NSFetchRequest<Level> {
return NSFetchRequest<Level>(entityName: "Level");
}

@NSManaged var timeStamp: NSDate?
}

重点是删除字符串常量的使用。

关于swift - 如何将类型应用于 NSFetchRequest 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37810967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com