don't access iCloud's ubiquitous cache file

This commit is contained in:
John Rommel Estropia
2016-12-10 09:43:45 +09:00
parent f42288802c
commit 1c233b7302
3 changed files with 6 additions and 14 deletions

View File

@@ -364,11 +364,6 @@ public extension DataStack {
let storeOptions = storage.dictionary(forOptions: cloudStorageOptions) let storeOptions = storage.dictionary(forOptions: cloudStorageOptions)
do { do {
try FileManager.default.createDirectory(
at: cacheFileURL.deletingLastPathComponent(),
withIntermediateDirectories: true,
attributes: nil
)
_ = try self.createPersistentStoreFromStorage( _ = try self.createPersistentStoreFromStorage(
storage, storage,
finalURL: cacheFileURL, finalURL: cacheFileURL,
@@ -381,6 +376,7 @@ public extension DataStack {
} }
catch let error as NSError where storage.cloudStorageOptions.contains(.recreateLocalStoreOnModelMismatch) && error.isCoreDataMigrationError { catch let error as NSError where storage.cloudStorageOptions.contains(.recreateLocalStoreOnModelMismatch) && error.isCoreDataMigrationError {
let finalStoreOptions = storage.dictionary(forOptions: storage.cloudStorageOptions)
let metadata = try NSPersistentStoreCoordinator.metadataForPersistentStore( let metadata = try NSPersistentStoreCoordinator.metadataForPersistentStore(
ofType: type(of: storage).storeType, ofType: type(of: storage).storeType,
at: cacheFileURL, at: cacheFileURL,
@@ -390,7 +386,7 @@ public extension DataStack {
_ = try self.createPersistentStoreFromStorage( _ = try self.createPersistentStoreFromStorage(
storage, storage,
finalURL: cacheFileURL, finalURL: cacheFileURL,
finalStoreOptions: storeOptions finalStoreOptions: finalStoreOptions
) )
} }
} }

View File

@@ -265,10 +265,11 @@ public final class DataStack: Equatable {
metadata: metadata, metadata: metadata,
soureModelHint: self.model[metadata] soureModelHint: self.model[metadata]
) )
let finalStoreOptions = storage.dictionary(forOptions: storage.localStorageOptions)
_ = try self.createPersistentStoreFromStorage( _ = try self.createPersistentStoreFromStorage(
storage, storage,
finalURL: fileURL, finalURL: fileURL,
finalStoreOptions: storeOptions finalStoreOptions: finalStoreOptions
) )
return storage return storage
} }
@@ -340,11 +341,6 @@ public final class DataStack: Equatable {
let storeOptions = storage.dictionary(forOptions: cloudStorageOptions) let storeOptions = storage.dictionary(forOptions: cloudStorageOptions)
do { do {
try FileManager.default.createDirectory(
at: cacheFileURL.deletingLastPathComponent(),
withIntermediateDirectories: true,
attributes: nil
)
_ = try self.createPersistentStoreFromStorage( _ = try self.createPersistentStoreFromStorage(
storage, storage,
finalURL: cacheFileURL, finalURL: cacheFileURL,
@@ -354,6 +350,7 @@ public final class DataStack: Equatable {
} }
catch let error as NSError where storage.cloudStorageOptions.contains(.recreateLocalStoreOnModelMismatch) && error.isCoreDataMigrationError { catch let error as NSError where storage.cloudStorageOptions.contains(.recreateLocalStoreOnModelMismatch) && error.isCoreDataMigrationError {
let finalStoreOptions = storage.dictionary(forOptions: storage.cloudStorageOptions)
let metadata = try NSPersistentStoreCoordinator.metadataForPersistentStore( let metadata = try NSPersistentStoreCoordinator.metadataForPersistentStore(
ofType: type(of: storage).storeType, ofType: type(of: storage).storeType,
at: cacheFileURL, at: cacheFileURL,
@@ -363,7 +360,7 @@ public final class DataStack: Equatable {
_ = try self.createPersistentStoreFromStorage( _ = try self.createPersistentStoreFromStorage(
storage, storage,
finalURL: cacheFileURL, finalURL: cacheFileURL,
finalStoreOptions: storeOptions finalStoreOptions: finalStoreOptions
) )
return storage return storage
} }

View File

@@ -446,7 +446,6 @@ public final class ICloudStore: CloudStorage {
at: cacheFileURL, at: cacheFileURL,
options: options options: options
) )
try FileManager.default.removeItem(at: cacheFileURL)
} }
} }