From 1c233b7302efd9440cc0c453088af19fb563699f Mon Sep 17 00:00:00 2001 From: John Rommel Estropia Date: Sat, 10 Dec 2016 09:43:45 +0900 Subject: [PATCH] don't access iCloud's ubiquitous cache file --- Sources/Migrating/DataStack+Migration.swift | 8 ++------ Sources/Setup/DataStack.swift | 11 ++++------- Sources/Setup/StorageInterfaces/ICloudStore.swift | 1 - 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/Sources/Migrating/DataStack+Migration.swift b/Sources/Migrating/DataStack+Migration.swift index 6b51bd0..07d1a6c 100644 --- a/Sources/Migrating/DataStack+Migration.swift +++ b/Sources/Migrating/DataStack+Migration.swift @@ -364,11 +364,6 @@ public extension DataStack { let storeOptions = storage.dictionary(forOptions: cloudStorageOptions) do { - try FileManager.default.createDirectory( - at: cacheFileURL.deletingLastPathComponent(), - withIntermediateDirectories: true, - attributes: nil - ) _ = try self.createPersistentStoreFromStorage( storage, finalURL: cacheFileURL, @@ -381,6 +376,7 @@ public extension DataStack { } catch let error as NSError where storage.cloudStorageOptions.contains(.recreateLocalStoreOnModelMismatch) && error.isCoreDataMigrationError { + let finalStoreOptions = storage.dictionary(forOptions: storage.cloudStorageOptions) let metadata = try NSPersistentStoreCoordinator.metadataForPersistentStore( ofType: type(of: storage).storeType, at: cacheFileURL, @@ -390,7 +386,7 @@ public extension DataStack { _ = try self.createPersistentStoreFromStorage( storage, finalURL: cacheFileURL, - finalStoreOptions: storeOptions + finalStoreOptions: finalStoreOptions ) } } diff --git a/Sources/Setup/DataStack.swift b/Sources/Setup/DataStack.swift index 557cb4b..8463c43 100644 --- a/Sources/Setup/DataStack.swift +++ b/Sources/Setup/DataStack.swift @@ -265,10 +265,11 @@ public final class DataStack: Equatable { metadata: metadata, soureModelHint: self.model[metadata] ) + let finalStoreOptions = storage.dictionary(forOptions: storage.localStorageOptions) _ = try self.createPersistentStoreFromStorage( storage, finalURL: fileURL, - finalStoreOptions: storeOptions + finalStoreOptions: finalStoreOptions ) return storage } @@ -340,11 +341,6 @@ public final class DataStack: Equatable { let storeOptions = storage.dictionary(forOptions: cloudStorageOptions) do { - try FileManager.default.createDirectory( - at: cacheFileURL.deletingLastPathComponent(), - withIntermediateDirectories: true, - attributes: nil - ) _ = try self.createPersistentStoreFromStorage( storage, finalURL: cacheFileURL, @@ -354,6 +350,7 @@ public final class DataStack: Equatable { } catch let error as NSError where storage.cloudStorageOptions.contains(.recreateLocalStoreOnModelMismatch) && error.isCoreDataMigrationError { + let finalStoreOptions = storage.dictionary(forOptions: storage.cloudStorageOptions) let metadata = try NSPersistentStoreCoordinator.metadataForPersistentStore( ofType: type(of: storage).storeType, at: cacheFileURL, @@ -363,7 +360,7 @@ public final class DataStack: Equatable { _ = try self.createPersistentStoreFromStorage( storage, finalURL: cacheFileURL, - finalStoreOptions: storeOptions + finalStoreOptions: finalStoreOptions ) return storage } diff --git a/Sources/Setup/StorageInterfaces/ICloudStore.swift b/Sources/Setup/StorageInterfaces/ICloudStore.swift index 7402814..c7fd5d6 100644 --- a/Sources/Setup/StorageInterfaces/ICloudStore.swift +++ b/Sources/Setup/StorageInterfaces/ICloudStore.swift @@ -446,7 +446,6 @@ public final class ICloudStore: CloudStorage { at: cacheFileURL, options: options ) - try FileManager.default.removeItem(at: cacheFileURL) } }