Приложение MyOS отправляет базу данных в WatchKit (watchOS 2)
. В WatchKit
я использую следующий код, чтобы получить папку часов документа, чтобы сохранить новый файл в:Сохранение в watchOS 2 папке с документами
NSURL* fileURL = [[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] URLByAppendingPathComponent:@"MyDatabase.sqlite"];
Это приводит к URL-адрес:
@"file:///var/mobile/Containers/Data/PluginKitPlugin/47E13085-9030-4ED2-906F-01CBA323F07A/Documents/MyDatabase.sqlite"
Однако, когда я вызываю функцию:
[[NSFileManager defaultManager] replaceItemAtURL:fileURL withItemAtURL:url backupItemName:nil options:0 resultingItemURL:nil error:&error];
Он выдает ошибку, говоря:
Ошибка домена = NSCocoaErrorDomain Code = 512 «Файл« MyDatabase.sqlite »не может быть сохранен в папке« Документы ».» Error Domain = NSCocoaErrorDomain Code = 513 «У вас нет разрешения на сохранение файла„MyDatabase.sqlite“
Как я могу найти папку, я позволила сохранить? Естественно этот код работал отлично в тренажере поэтому я предполагаю, что я что-то не слишком очевидное отсутствует.
BR Frederik
Вам не следует перемещать файлы основных данных с помощью NSFileManager для этого используется NSPsistentStoreCoordinator. Перемещение файла с помощью NSFileManager может привести к повреждению базы данных. –