Вот как я определяю это сейчас:
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>?
}