Использование существующего кода NSFileManager с iCloud
Я просто написал несколько сотен строк кода для сохранения файлов, открытия файлов и удаления файлов в моем приложении для iOS... потом я понял, что, вероятно, мне следовало бы изучить iCloud и интегрировать его, когда я писал свой код.
Есть ли способ интегрировать iCloud в существующую структуру Documents, класс /questions/tagged/nsfilemanager и т. Д.? Или мне придется переписывать большую часть своего кода с нуля?
Так или иначе, есть ли какие-либо проекты iCloud ( похожие на этот), которые позволили бы мне легко интегрировать синхронизацию документов iCloud?
Просто быстрый пример кода, который я использую:
//Begin saving file
NSLog(@"Began Saving File");
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:filetitle];
//Get the user's keyword preference
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL enabled = [defaults boolForKey:@"completeFile"];
[[NSString stringWithFormat:@"Message:%@", MessageText] writeToFile:filePath atomically:TRUE encoding:NSUTF8StringEncoding error:NULL];
РЕДАКТИРОВАТЬ: я создал проект на GitHub под названием iCloud Document Sync, который позволяет разработчикам легко интегрировать iCloud со своими приложениями для iOS на основе документов. Проблема в том, что он не совсем соответствует дизайну / структуре, которой подвергаются обычные файлы iCloud:
- Файл скопирован в iCloud
- Затем файл редактируется локально, а изменения загружаются в iCloud.
- Каким-то образом мы должны проверить, старше ли локальный файл, чем в iCloud
Мой проект GitHub несколько решает проблему этого вопроса, но я не могу понять, как копировать файлы из локального каталога вместо их перемещения. Вторая проблема, с которой я столкнулся - это выяснить, как отредактировать этот локальный файл и отправить изменения. Когда я пытаюсь отправить изменения в файл в облаке, я получаю сообщение об ошибке Какао:
Ошибка какао 516: файл существует
Наконец, я не уверен, как проверить наличие расхождений / конфликтов между локальными и облачными файлами. Я думаю, что проблема связана с дизайном и потоком кода - однако я думаю, что макет кода необходим из-за сценария.
РЕДАКТИРОВАТЬ: Я прочитал этот ТАК вопрос, который, кажется, является частью того, что я спрашиваю, однако я хотел бы предложить награду за более четкий и более четкий ответ.
1 ответ
Это может помочь Так Apple описывает это в своей документации. https://developer.apple.com/library/mac/#documentation/General/Conceptual/iCloudDesignGuide/Chapters/DesigningForDocumentsIniCloud.html#//apple_ref/doc/uid/TP40012094-CH2-SW1