Skip to content

Instantly share code, notes, and snippets.

@loucimj
Created August 7, 2017 15:11
Show Gist options
  • Save loucimj/7c7b75e59bef2259123dcebb457fcbec to your computer and use it in GitHub Desktop.
Save loucimj/7c7b75e59bef2259123dcebb457fcbec to your computer and use it in GitHub Desktop.
Using DiffableBox with ListAdapterDataSource
extension MessagesViewController: ListAdapterDataSource {
func objects(for listAdapter: ListAdapter) -> [ListDiffable] {
var objects:Array<ListDiffable> = Array<ListDiffable>()
for item in data {
switch item {
case is String:
objects.append(item as! ListDiffable)
case is TicketShort:
objects.append((item as! TicketShort).diffable())
default:
break
}
}
return objects
}
func listAdapter(_ listAdapter: ListAdapter, sectionControllerFor object: Any) -> ListSectionController {
switch object {
case is String:
return HeaderSectionController()
case is DiffableBox<TicketShort>:
return TicketSectionController(delegate: self)
default:
return HeaderSectionController()
}
}
func emptyView(for listAdapter: ListAdapter) -> UIView? { return nil }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment