Как определить протокол с универсальным типом для NSFetchedResultsController? - PullRequest
0 голосов
/ 24 августа 2018

Вот как я определяю это сейчас:

protocol FetchedResultsControlable {
    var fetchedResultsController: NSFetchedResultsController<NSManagedObject>? { get set }
}

И что мне нужно сделать, чтобы соответствовать этому протоколу следующим образом:

var fetchedResultsController: NSFetchedResultsController<Thread>?
var fetchedResultsController: NSFetchedResultsController<Task>?
var fetchedResultsController: NSFetchedResultsController<Notification>?

Как я могу этого достичь?

Вот как я собираюсь использовать это.Просто нужно расширить другой протокол:

protocol NotificationsViewModelable: FetchedResultsControlable {
    var notifications: [Notificationable] { get }
}
class NotificationsViewModel: NotificationsViewModelable {
    var notifications: [Notificationable] {
        return fetchedResultsController?.fetchedObjects ?? []
    }
    var fetchedResultsController: NSFetchedResultsController<Notification>?
}
...