2015-02-03 2 views
0

Я работаю над приложением, которое использует CoreData, у меня есть две организации под названием папки и заметки. Таким образом, их одно для многих отношений между папками-> заметками. i.e 1 folder = много заметок.процесс JSON данные, поступающие с сервера и добавлять/обновлять объекты в CoreData

Я использовал для получения результатов контроллера для папок, и он отображается в UITableView, когда пользователь щелкает папку, он переходит в таблицу заметок, в которой отображаются заметки внутри конкретной папки.

Пользователь может добавлять и удалять папки/заметки.

Все работает нормально. Все здесь не работает.

Теперь я пытаюсь выполнить эти данные с сервером, чтобы я мог синхронизировать его с несколькими устройствами. Я не делаю слепой синхронизации, я только синхронизирую данные, которые были изменены.

Я использую NSURLConnection который по умолчанию асинхронного и имеет делегируют функции, которые дают данные JSON от сервера.

Теперь я пытаюсь обработать этот JsonData и я после методологии FindOrCreate. Поэтому, если папка/Notes существует, просто обновите ее или создайте новую и сохраните ее в coreData. Я использую тот же управляемый объект, и процесс публикации происходит в основном потоке.

Проблемы, с которыми сталкиваются. (которые являются случаями реального мира)

1) Когда происходит тяга, пользователь может добавлять новые папки/заметки, а пользовательский интерфейс должен быть отзывчивым, но в моем случае пользовательский интерфейс застревает. Поэтому я хочу знать, как мы можем с легкостью создавать/обновлять новые данные, поступающие с сервера, и пользовательский интерфейс также реагирует.

2) Я попытался сделать процесс поста в фоновом режиме очереди, используя

dispatch_async (dispatch_get_global_queue (0,0),^{

}

Но вот что я наблюдал что я получил сбой, в котором говорится: * Завершение приложения из-за неперехваченного исключения «NSGenericException», причина: '* Коллекция < __NSCFSet: 0x1557ecd0> была мутирована, а '

ответ

3

Это распространенная ошибка. Это означает, что вы не можете зацикливать коллекцию и изменить ее одновременно. Предположим, вы хотите создать петлю и найти объекты для удаления. Не удаляйте в цикле объекты, которые нужно удалить во временной коллекции, и удалите их после цикла.

+0

Привет, @danh, решил проблему, а теперь я делаю импорт больших данных в фоновом потоке – Ranjit

+0

эй @danh, пожалуйста, посмотрите на этот http: // stackoverflow.ком/вопросы/28413256/ручка-401-статус-код-с sendasynchronousrequestrequest-Апи-в-ИСН – Ranjit