【发布时间】:2017-01-22 12:58:43
【问题描述】:
根据新的 Core Data 变化,Xcode 为我生成了这个子类:
extension Person {
@nonobjc public class func fetchRequest() -> NSFetchRequest<Person> {
return NSFetchRequest<Person>(entityName: "Person");
}
@NSManaged public var name: String?
}
然后在代码中我期望这一行工作:
let fr = Person.fetchRequest()
上面这行代码给了我一个错误:
"Ambiguous use of 'fetchRequest'
这解决了问题:
let fr: NSFetchRequest<Person> = Person.fetchRequest()
那么,我很困惑是什么:
NSFetchRequest<Person>
在:
@nonobjc public class func fetchRequest() -> NSFetchRequest<Person> {
返回类型在做什么?
返回类型不应该让我不必指定:
NSFetchRequest<Person>
在 let 定义中??
let fr: NSFetchRequest<Person> = Person.fetchRequest()
任何人都可以帮助我理解为什么需要它,即使它已经是返回类型的一部分?
【问题讨论】:
-
我理解这里提到的答案的推理,但我不明白,为什么苹果会添加非编译代码! /咆哮