mirror of
https://github.com/JohnEstropia/CoreStore.git
synced 2026-03-24 18:31:41 +01:00
WIP: demo app
This commit is contained in:
@@ -120,6 +120,24 @@ internal final class FetchedResultsControllerDelegate<EntityType: NSManagedObjec
|
||||
// http://stackoverflow.com/questions/31383760/ios-9-attempt-to-delete-and-reload-the-same-index-path/31384014#31384014
|
||||
// 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, *) {
|
||||
|
||||
// iOS 10 is better, but still not perfect...
|
||||
if case .update = actualType,
|
||||
let indexPath = indexPath,
|
||||
let newIndexPath = newIndexPath {
|
||||
|
||||
self.handler?.controller(
|
||||
controller,
|
||||
didChangeObject: anObject,
|
||||
atIndexPath: indexPath,
|
||||
forChangeType: .move,
|
||||
newIndexPath: newIndexPath
|
||||
)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
switch actualType {
|
||||
|
||||
|
||||
@@ -124,7 +124,6 @@ internal extension NSManagedObjectContext {
|
||||
}
|
||||
context.mergeChanges(fromContextDidSave: note)
|
||||
}
|
||||
|
||||
if rootContext.isSavingSynchronously == true {
|
||||
|
||||
context.performAndWait(mergeChanges)
|
||||
|
||||
@@ -129,7 +129,7 @@ internal extension NSManagedObjectContext {
|
||||
return
|
||||
}
|
||||
|
||||
if let parentContext = self.parent where self.shouldCascadeSavesToParent {
|
||||
if let parentContext = self.parent, self.shouldCascadeSavesToParent {
|
||||
|
||||
switch parentContext.saveSynchronously() {
|
||||
|
||||
@@ -183,7 +183,7 @@ internal extension NSManagedObjectContext {
|
||||
return
|
||||
}
|
||||
|
||||
if let parentContext = self.parent where self.shouldCascadeSavesToParent {
|
||||
if self.shouldCascadeSavesToParent, let parentContext = self.parent {
|
||||
|
||||
parentContext.saveAsynchronouslyWithCompletion(completion)
|
||||
}
|
||||
|
||||
@@ -52,7 +52,8 @@ internal extension NSManagedObjectModel {
|
||||
|
||||
let modelVersions = Set(versionHashes.keys)
|
||||
let currentModelVersion: String
|
||||
if let plistModelVersion = versionInfo["NSManagedObjectModel_CurrentVersionName"] as? String where modelVersionHints.isEmpty || modelVersionHints.contains(plistModelVersion) {
|
||||
if let plistModelVersion = versionInfo["NSManagedObjectModel_CurrentVersionName"] as? String,
|
||||
modelVersionHints.isEmpty || modelVersionHints.contains(plistModelVersion) {
|
||||
|
||||
currentModelVersion = plistModelVersion
|
||||
}
|
||||
@@ -183,8 +184,8 @@ internal extension NSManagedObjectModel {
|
||||
}
|
||||
|
||||
guard let modelFileURL = self.modelFileURL,
|
||||
let modelVersions = self.modelVersions
|
||||
where modelVersions.contains(modelVersion) else {
|
||||
let modelVersions = self.modelVersions,
|
||||
modelVersions.contains(modelVersion) else {
|
||||
|
||||
return nil
|
||||
}
|
||||
@@ -210,7 +211,7 @@ internal extension NSManagedObjectModel {
|
||||
}
|
||||
for modelVersion in self.modelVersions ?? [] {
|
||||
|
||||
if let versionModel = self[modelVersion] where modelHashes == versionModel.entityVersionHashesByName {
|
||||
if let versionModel = self[modelVersion], modelHashes == versionModel.entityVersionHashesByName {
|
||||
|
||||
return versionModel
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user