From f3beca876986e6369be9043740768c0124ed968e Mon Sep 17 00:00:00 2001 From: John Estropia Date: Fri, 25 Oct 2019 16:17:25 +0900 Subject: [PATCH] fix compiler error in testcases --- .../ColorsDemo.swift | 2 +- .../SwiftUIContainerViewController.swift | 2 +- .../SwiftUI Demo/SwiftUIView.swift | 2 +- CoreStoreTests/ListPublisherTests.swift | 4 ++-- CoreStoreTests/ObjectPublisherTests.swift | 4 ++-- .../NSManagedObjectContext+CoreStore.swift | 22 ++++++++++++++----- 6 files changed, 23 insertions(+), 13 deletions(-) diff --git a/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ColorsDemo.swift b/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ColorsDemo.swift index daff9e5..0a5d837 100644 --- a/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ColorsDemo.swift +++ b/CoreStoreDemo/CoreStoreDemo/List and Object Observers Demo/ColorsDemo.swift @@ -79,7 +79,7 @@ struct ColorsDemo { static let palettes: ListPublisher = { - return ColorsDemo.stack.listPublisher( + return ColorsDemo.stack.publishList( From() .sectionBy(\.colorName) .orderBy(.ascending(\.hue)) diff --git a/CoreStoreDemo/CoreStoreDemo/SwiftUI Demo/SwiftUIContainerViewController.swift b/CoreStoreDemo/CoreStoreDemo/SwiftUI Demo/SwiftUIContainerViewController.swift index 8e8b9fc..5d78086 100644 --- a/CoreStoreDemo/CoreStoreDemo/SwiftUI Demo/SwiftUIContainerViewController.swift +++ b/CoreStoreDemo/CoreStoreDemo/SwiftUI Demo/SwiftUIContainerViewController.swift @@ -31,7 +31,7 @@ final class SwiftUIContainerViewController: UIViewController { let hostingController = UIHostingController( rootView: SwiftUIView( - palettes: ColorsDemo.stack.listPublisher( + palettes: ColorsDemo.stack.publishList( From() .sectionBy(\.colorName) .orderBy(.ascending(\.hue)) diff --git a/CoreStoreDemo/CoreStoreDemo/SwiftUI Demo/SwiftUIView.swift b/CoreStoreDemo/CoreStoreDemo/SwiftUI Demo/SwiftUIView.swift index 9516f1f..1d8c334 100644 --- a/CoreStoreDemo/CoreStoreDemo/SwiftUI Demo/SwiftUIView.swift +++ b/CoreStoreDemo/CoreStoreDemo/SwiftUI Demo/SwiftUIView.swift @@ -171,7 +171,7 @@ struct SwiftUIView_Previews: PreviewProvider { static var previews: some View { SwiftUIView( - palettes: ColorsDemo.stack.listPublisher( + palettes: ColorsDemo.stack.publishList( From() .sectionBy(\.colorName) .orderBy(.ascending(\.hue)) diff --git a/CoreStoreTests/ListPublisherTests.swift b/CoreStoreTests/ListPublisherTests.swift index 1b0fc6a..b52224b 100644 --- a/CoreStoreTests/ListPublisherTests.swift +++ b/CoreStoreTests/ListPublisherTests.swift @@ -203,8 +203,8 @@ class ListPublisherTests: BaseTestDataTestCase { XCTAssertEqual(listPublisher.snapshot.numberOfSections, 2) XCTAssertTrue(listPublisher.snapshot.hasItems()) XCTAssertTrue(listPublisher.snapshot.hasItems(inSectionIndex: 0)) - XCTAssertEqual(listPublisher.snapshot.numberOfItems(inSectionIndex: 0), 2) - XCTAssertEqual(listPublisher.snapshot.numberOfItems(inSectionIndex: 1), 3) + XCTAssertEqual(listPublisher.snapshot.numberOfItems(inSectionIndex: 0), 1) + XCTAssertEqual(listPublisher.snapshot.numberOfItems(inSectionIndex: 1), 4) didChangeExpectation.fulfill() } diff --git a/CoreStoreTests/ObjectPublisherTests.swift b/CoreStoreTests/ObjectPublisherTests.swift index 08c4de4..16460d7 100644 --- a/CoreStoreTests/ObjectPublisherTests.swift +++ b/CoreStoreTests/ObjectPublisherTests.swift @@ -56,8 +56,8 @@ class ObjectPublisherTests: BaseTestDataTestCase { let didChangeExpectation = self.expectation(description: "didChange") objectPublisher.addObserver(observer) { objectPublisher in - XCTAssertEqual(objectPublisher.snapshot?.testNumber, NSNumber(value: 10)) - XCTAssertEqual(objectPublisher.snapshot?.testString, "nil:TestEntity1:10") + XCTAssertEqual(objectPublisher.object?.testNumber, NSNumber(value: 10)) + XCTAssertEqual(objectPublisher.object?.testString, "nil:TestEntity1:10") didChangeExpectation.fulfill() } diff --git a/Sources/NSManagedObjectContext+CoreStore.swift b/Sources/NSManagedObjectContext+CoreStore.swift index 66114d2..1e1b6d8 100644 --- a/Sources/NSManagedObjectContext+CoreStore.swift +++ b/Sources/NSManagedObjectContext+CoreStore.swift @@ -120,17 +120,27 @@ extension NSManagedObjectContext { return (updated: [], deleted: []) } + if userInfo[NSInvalidatedAllObjectsKey] != nil { + + let context = notification.object as! NSManagedObjectContext + return (updated: Set(context.registeredObjects.map({ $0.objectID })), deleted: []) + } + var updatedObjectIDs: Set = [] - if let updatedObjects = userInfo[NSUpdatedObjectsKey] as? Set { + if let updatedObjects = userInfo[NSUpdatedObjectsKey] as? Set { - updatedObjectIDs.formUnion(updatedObjects) + updatedObjectIDs.formUnion(updatedObjects.map({ $0.objectID })) } - if let mergedObjects = userInfo[NSRefreshedObjectsKey] as? Set { + if let mergedObjects = userInfo[NSRefreshedObjectsKey] as? Set { - updatedObjectIDs.formUnion(mergedObjects) + updatedObjectIDs.formUnion(mergedObjects.map({ $0.objectID })) } - let deletedObjectIDs: Set = (userInfo[NSDeletedObjectsKey] as? Set) ?? [] - return (updated: updatedObjectIDs, deleted: deletedObjectIDs) + if let mergedObjects = userInfo[NSInvalidatedObjectsKey] as? Set { + + updatedObjectIDs.formUnion(mergedObjects.map({ $0.objectID })) + } + let deletedObjectIDs: Set = (userInfo[NSDeletedObjectsKey] as? Set) ?? [] + return (updated: updatedObjectIDs, deleted: Set(deletedObjectIDs.map({ $0.objectID }))) } ) }