diff --git a/CoreStore.podspec b/CoreStore.podspec index 38d7970..edb2eee 100644 --- a/CoreStore.podspec +++ b/CoreStore.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "CoreStore" - s.version = "2.0.6" + s.version = "2.0.7" s.license = "MIT" s.summary = "Unleashing the real power of Core Data with the elegance and safety of Swift" s.homepage = "https://github.com/JohnEstropia/CoreStore" diff --git a/Sources/Info.plist b/Sources/Info.plist index 0100960..9fa96d1 100644 --- a/Sources/Info.plist +++ b/Sources/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 2.0.6 + 2.0.7 CFBundleSignature ???? CFBundleVersion diff --git a/Sources/Internal/FetchedResultsControllerDelegate.swift b/Sources/Internal/FetchedResultsControllerDelegate.swift index fe35a11..f41777b 100644 --- a/Sources/Internal/FetchedResultsControllerDelegate.swift +++ b/Sources/Internal/FetchedResultsControllerDelegate.swift @@ -108,7 +108,7 @@ internal final class FetchedResultsControllerDelegate: NSObject, NSFetchedResult return } - guard let actualType = NSFetchedResultsChangeType(rawValue: type.rawValue) else { + guard var actualType = NSFetchedResultsChangeType(rawValue: type.rawValue) else { // This fix is for a bug where iOS passes 0 for NSFetchedResultsChangeType, but this is not a valid enum case. // Swift will then always execute the first case of the switch causing strange behaviour. @@ -121,6 +121,16 @@ internal final class FetchedResultsControllerDelegate: NSObject, NSFetchedResult // https://forums.developer.apple.com/message/9998#9998 // https://forums.developer.apple.com/message/31849#31849 + if #available(iOS 10.0, tvOS 10.0, watchOS 3.0, *) { + + // I don't know if iOS 10 even attempted to fix this mess... + if case .Update = actualType + where indexPath != nil && newIndexPath != nil { + + actualType = .Move + } + } + switch actualType { case .Update: