1

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 NSManagedObjectfetchRequestAnswersでやりたいです。

これについてあなたはどう思いますか?あなたのコメントを教えてください。


だから私はこの方法を使用してそれを解決しました

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()なぜエラーが表示されましたか??

4

0 に答える 0