swift – 如何将类型应用到NSFetchRequest实例?

在Swift 2中,以下代码正在工作:
let request = NSFetchRequest(entityName: String)

但在Swift 3它给出错误

Generic parameter “ResultType” Could not be inferred

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

let request: NSFetchRequest<Animal> = Animal.fetchRequest

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

因为这不工作:

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

要么

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

取决于你想要的版本。

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

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

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

    @NSManaged var timeStamp: NSDate?
}

整个关键是要去掉String常量的用法

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...