2016-07-11 3 views
6

Я только что установил Xcode 8 beta 2 и iOS 10 beta. У меня есть существующий проект, в котором я обновлялся с swift 2.3 до swift 3 на основе подсказки от Xcode. Я получил ошибку с кодом кода кода.Тип 'AnyObject' не соответствует протоколу 'NSFetchRequestResult'

Это автогенерируемый в переходе от быстрой 2,3 до быстрых 3 по Xcode

var fetchedResultsController: NSFetchedResultsController<AnyObject>! 

ошибки я получаю это

Type 'AnyObject' does not conform to protocol 'NSFetchRequestResult' 

Я пытался соответствовать AnyObject

extension AnyObject: NSFetchRequestResult {} 

Но я получаю другую ошибку

enter image description here

Я не уверен, что мне нужно сделать, или если мой fetchedResultsController необходимо изменить в первую очередь.

ОТВЕТ: var fetchedResultsController: NSFetchedResultsController<Content>!

+4

Что еще можно использовать в качестве 'NSManagedObject' (или подкласса), который вы хотите использовать в' NSFetchedResultsController'? – vadian

+0

@vadian class Содержание: NSManagedObject. Это то, о чем вы просите? – Asdrubal

+0

На самом деле это риторический вопрос: 'NSFetchedResultsController' работает только с' NSManagedObject', который соответствует 'NSFetchRequestResult'. Расширение 'NSFetchRequestResult' до' AnyObject' бесполезно. – vadian

ответ

7

Преобразователь Xcode вероятно был смущен о том, что Entity вы хотите, чтобы вернуться в этом извлеченном контроллере результатов. Замените AnyObject на тип объекта, который вы выбираете.

Вы должны открыть радар (bugreporter.apple.com), так как он никогда не должен предлагать AnyObject здесь. В худшем случае следует предложить NSManagedObject.

+0

Мне была удалена ошибка с кодом: var fetchedResultsController: NSFetchedResultsController ! – Asdrubal

Смежные вопросы