Skip to content

Commit de034b3

Browse files
author
Roman Scherbakov
committed
[Add] add to observable change array of all objects
1 parent 757f38a commit de034b3

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

DBClient/Core/RequestObservable.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import Foundation
1616
public enum ObservableChange<T: Stored> {
1717

1818
case initial([T])
19-
case update(deletions: [Int], insertions: [(index: Int, element: T)], modifications: [(index: Int, element: T)])
19+
case change(objects: [T], deletions: [Int], insertions: [(index: Int, element: T)], modifications: [(index: Int, element: T)])
2020
case error(Error)
2121

2222
}

DBClient/CoreData/CoreDataObservable.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,11 @@ class CoreDataObservable<T: Stored, U: NSManagedObject>: RequestObservable<T> {
6767
observer = closure
6868

6969
fetchedResultsControllerDelegate.observer = { [unowned self] change in
70-
if case .update(deletions: let deletions, insertions: let insertions, modifications: let modifications) = change {
70+
if case .change(objects: let objects, deletions: let deletions, insertions: let insertions, modifications: let modifications) = change {
7171
let mappedInsertions = insertions.map { ($0, coreDataModelType.from($1) as! T) }
7272
let mappedModifications = modifications.map { ($0, coreDataModelType.from($1) as! T) }
73-
74-
self.observer?(.update(deletions: deletions, insertions: mappedInsertions, modifications: mappedModifications))
73+
let mappedObjects = objects.map { coreDataModelType.from($0) as! T }
74+
self.observer?(.change(objects: mappedObjects, deletions: deletions, insertions: mappedInsertions, modifications: mappedModifications))
7575
}
7676
}
7777

@@ -112,7 +112,7 @@ private class FetchedResultsControllerDelegate<T: NSManagedObject>: NSObject, NS
112112
let inserted = batchChanges.filter { $0.isInsertion }.map { (index: $0.index(), element: $0.object()) }
113113
let updated = batchChanges.filter { $0.isUpdate }.map { (index: $0.index(), element: $0.object()) }
114114

115-
observer?(.update(deletions: deleted, insertions: inserted, modifications: updated))
115+
observer?(.change(objects: controller.fetchedObjects as? [T] ?? [], deletions: deleted, insertions: inserted, modifications: updated))
116116
batchChanges = []
117117
}
118118

Example/Podfile.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ DEPENDENCIES:
1919

2020
EXTERNAL SOURCES:
2121
DBClient:
22-
:path: "../"
22+
:path: ../
2323

2424
SPEC CHECKSUMS:
2525
Bolts-Swift: fa98d1b59fc1acea9b21a21306dcdca1c85e3737
2626
DBClient: fcf29df338854a8509d00cad7356ab3190be4006
2727
Realm: efe855f4d977c8ce5a82d3116d9f1ff155a6550c
2828
RealmSwift: 17d6ee30b6f9df86364408c2197492e33bfea567
2929

30-
PODFILE CHECKSUM: cb4df083d69e58f50f893c10dae15238468392b4
30+
PODFILE CHECKSUM: 179eda0e5897e0216cdd26b5cd14adae089b4671
3131

32-
COCOAPODS: 1.2.0.beta.3
32+
COCOAPODS: 1.2.0.rc.1

0 commit comments

Comments
 (0)