2013-08-26 3 views
2

Does UIManagedDocument обрабатывает строки уровня строки для меня или мне нужно их обрабатывать, и его ответ заключался в том, что он справляется с конфликтами на уровне строк. Может быть, я неправильно понял его, но я этого не вижу.Выполняет ли UIManagedDocument conflcts

Так что я собираюсь задать несколько ключевых вопросов в надежде получить некоторые разъяснения здесь, опять-таки это UIManagedDocument

Если у меня есть таблица Автор, имеющий имя и фамилию поля, что происходит, если: A) I есть строка с автором: «Jon Do» - она ​​синхронизирована с двумя устройствами. Затем я редактирую имя на одном устройстве с «Jon» на «John» и редактирую фамилию на другом устройстве с «Do» на «Doe». Как обработать iCloud и UIManagedDocument? Получу ли я какое-то уведомление, на которое я должен ответить, чтобы справиться с конфликтом? Я пробовал следующий код, но я никогда не получить notificiation:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_ondocumentStateChangedNotification:) name:UIDocumentStateChangedNotification object:self.openedDoc]; 

B) Что делать, если добавить другой автора двух устройств, так что есть теперь два ряда, которые будут объединены будет UIManagedDocument обращаться с этим для меня или сделать Мне нужно что-то сделать самому? Если мне нужно что-то сделать самому, что мне нужно делать? Я попытался подписаться на NSPersistentStoreDidImportUbiquitousContentChangesNotification, но это ни для кого не похоже. В каком контексте я подписываюсь? Я попытался это:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(_onPersistentStoreDidImportUbiquitousContentChanges:) name:NSPersistentStoreDidImportUbiquitousContentChangesNotificationobject:self.openedCaddy.managedObjectContext.parentContext]; 

Также мне нужно обрабатывать NSManagedObjectContextDidSaveNotification себя за UIManagedDocument или же UIManagedDocument ручка для меня?

Любая помощь очень ценится. Я действительно борется здесь. Я принял iCloud и UIManagedDocument при запуске iOS 5 и пошарил, хотя из-за нехватки документа, но мне удалось отправить продукт, но теперь я хочу, чтобы iCloud действительно работал, а не просто победитель принимает весь подход к синхронизации документов.

ответ

4

Я понял. UIManagedDocument справляется с конфликтами на уровне строк.

Причина, по которой я никогда не видел ни одного имени: NSPersistentStoreDidImportUbiquitousContentChangesNotificationobject Уведомления связаны с тем, что я не устанавливал параметры сохранения хранилища moc должным образом. Чтобы получить основные данные для запуска синхронизации, вам необходимо установить как минимум следующие параметры: NSPersistentStoreUbiquitousContentNameKey & NSPersistentStoreUbiquitousContentURLKey.

Когда я впервые начал использовать iCloud 2 года назад, я всегда предполагал, что звонок setUbiquitous:itemAtURL:destinationURL:error: сделал это для меня и был эквивалентен, но это не так. setUbiquitous:itemAtURL:destinationURL:error: просто сообщает iCloud синхронизировать файлы по этому URL-адресу, он ничего не делает с основными данными - think dropbox. Чтобы получить основную часть данных UIManagedDocument для синхронизации этих двух параметров, необходимо установить.

Я начал рефинансирование github, которое разъясняет некоторые из них и делает работу с UIManagedDocument намного проще. http://github.com/dtrotzjr/APManagedDocument

Надеюсь, это поможет кому-то еще. Я чувствую себя довольно глупым, не понимая этого раньше, но когда я впервые реализовал синхронизацию iCloud для iOS 5 2 года назад документация была скудной, и iCloud не работал очень хорошо, поэтому я предположил, что мое поведение было нормальным.

Смежные вопросы