swift – 如何将类型应用到NSFetchRequest实例?
发布时间:2020-12-14 06:14:03 所属栏目:百科 来源:网络整理
导读:在Swift 2中,以下代码正在工作: let request = NSFetchRequest(entityName: String) 但在Swift 3它给出错误: Generic parameter “ResultType” could not be inferred 因为NSFetchRequest现在是一个通用类型。在他们的文件中,他们写道: let request: N
在Swift 2中,以下代码正在工作:
let request = NSFetchRequest(entityName: String) 但在Swift 3它给出错误:
因为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() 取决于你想要的版本。 您必须指定通用类型,否则方法调用是不明确的。 第一个版本是为NSManagedObject定义的,第二个版本是使用扩展名为每个对象自动生成的,例如: extension Level { @nonobjc class func fetchRequest() -> NSFetchRequest<Level> { return NSFetchRequest<Level>(entityName: "Level"); } @NSManaged var timeStamp: NSDate? } 整个关键是要去掉String常量的用法。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |