WWDC ビデオを見Whats new in Swift
ただけで、SDK とその中の API に多くの変更が加えられました。それで、その話を聞いたときNSManagedObject
fetchRequest
、私はすぐに飛び込んで実装を開始しました。
したがって、WWDC に従って、古い NSManagedObject フェッチ モデルは完全に変更されました。これは、ずっと前の Swift 2.2 で書いたスニペットです。
let answers : Answers = NSEntityDescription.insertNewObjectForEntityForName(EntityNames.Answers.rawValue, inManagedObjectContext: managedContext) as! Answers
今、Swift 3.0 で同じことをしようとしました。
let answers : NSFetchRequest<Answers> = Answers.fetchRequest // WWDC video style
次に、このエラーが発生しました
Cannot convert value of type '() -> NSFetchRequest< NSFetchRequestResult >' to specified type 'NSFetchRequest<Answers>'
次に、コードをこれに変更しました
let answers : NSFetchRequest<Answers> = Answers.fetchRequest()
次に、このエラーが発生しました
Cannot convert value of type 'NSFetchRequest<Answers>' to specified type 'NSFetchRequest<NSFetchRequestResult>'
そのため、コードを少し変更したところ、エラーはなくなりました。しかし今Answers
NSManagedObject
、私は のインスタンスを持っていません。他の何かのインスタンスを持っています。このインスタンスを使用して、私の のプロパティにアクセスすることはできませんAnswers
NSManagedObject
。fetchRequest
Answersでやりたいです。
これについてあなたはどう思いますか?あなたのコメントを教えてください。
だから私はこの方法を使用してそれを解決しました
extension Answers {
@nonobjc class func fetchRequest() -> NSFetchRequest<Answers> {
return NSFetchRequest<Answers>(entityName: "Level");
}
}
そして、このようにフェッチされました
let answers : NSFetchRequest<Answers> = Answers.fetchRequest()
次に、このように、より正確にすることを考えました
let answers = Answers.fetchRequest()
そして、Ambiguous use of fetchRequest()
なぜエラーが表示されましたか??