WIP: demo app

This commit is contained in:
John Rommel Estropia
2016-07-25 08:21:22 +09:00
parent db5b8ca702
commit e9be711d4c
61 changed files with 210 additions and 298 deletions

View File

@@ -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 {

View File

@@ -124,7 +124,6 @@ internal extension NSManagedObjectContext {
}
context.mergeChanges(fromContextDidSave: note)
}
if rootContext.isSavingSynchronously == true {
context.performAndWait(mergeChanges)

View File

@@ -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)
}

View File

@@ -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
}