Ошибка Swift 3.0 NSFetchRequest

Только что посмотрел Whats new in Swift в видеороликах WWDC, они внесли ряд изменений в 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 в разделе "Ответы".

Что Вы думаете об этом? Дайте мне знать ваши комментарии, пожалуйста.


Итак, я решил это, используя этот способ ????

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() Почему??


person Community    schedule 17.06.2016    source источник
comment
К сожалению, пример кода на developer.apple.com/ library/prerelease/content/releasenotes/ содержит ошибки...   -  person Martin R    schedule 17.06.2016
comment
@MartinR Обновленный вопрос.   -  person    schedule 17.06.2016
comment
Эта двусмысленность уже наблюдалась в дубликате. Это происходит из-за того, что Animal пересекает метод fetchRequest() из NSManagedObject с другим типом возвращаемого значения. Вы можете отправить отчет об ошибке и посмотреть, улучшит ли его Apple.   -  person Martin R    schedule 17.06.2016