2016-09-28 2 views
1

У меня есть протокол с NSFetchedResultsController собственностиSwift 3. NSFetchedResultsController свойство в протоколе

protocol ProtocolName { 

    var frc: NSFetchedResultsController<NSManagedObject> { get } 

} 

Когда я начинаю реализовывать класс с этим протоколом и изменить NSManagedObject к EntityName:

class MyClass: ProtocolName { 

    var frc: NSFetchedResultsController<EntityName> { get }  
} 

Xcode генерирует ошибку: Type 'MyClass' does not conform to protocol 'ProtocolName'

Существует ли правильный способ реализации протокола с коррекцией т общий?

+0

Вы должны инициализировать конкретный экземпляр контроллера и вернуть его в реализации (желательно лениво инстанцирован) – vadian

ответ

1

Я исправлена ​​проблема:

protocol ProtocolName { 

    associatedtype T: NSFetchRequestResult 

    var frc: NSFetchedResultsController<T> { get } 

} 

После добавления associatedtype все звезды хорошо работают

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