Должен ли я иметь разные контексты управляемых объектов для чтения и записи? Должен ли я использовать MOC для чтения в качестве родительского-ребенка? Какая может быть лучшая реализация MOC для написания?Рекомендации по использованию основных данных
ответ
Существует множество способов установки стека, и у каждого есть свои плюсы и минусы.
Самое простое, что делать, пока вы более комфортно с Core Data, выглядит следующим образом:
Создание родительского MOC с типом параллелизмом частной очереди. Это будет ваш писатель, поскольку он будет делать это в фоновом режиме.
Создайте дочерний MOC с основной задачей параллелизма. Это будет ваш читатель на главной теме.
Если вам необходимо внести изменения в основной поток, вы должны сохранить оба контекста, чтобы сделать их постоянными. Лучше, если вы можете отправить все записи непосредственно родителям для фоновой обработки. Используйте FRC и обработчики уведомлений, чтобы узнать, когда нужно обновить ребенка.
P.S. Я никогда не использую этот подход в своих приложениях, но у меня есть хорошо развитый базовый стек данных, который я переношу со мной из проекта в проект.
Что может быть самой сложной задачей, но по-прежнему лучше? Можете ли вы поделиться своим хорошо разработанным базовым стеком данных? По крайней мере, обсудите, как придумать такой стек. – mownier
Как уже указывалось, существует ряд факторов, определяющих, как и почему вы это делаете. Наиболее значительными из них, на мой взгляд, является необходимость поддержки многопоточности. Вот хорошая ссылка, которая объясняет (с изображением) родительскую/детскую парадигму. http://code.tutsplus.com/tutorials/core-data-from-scratch-concurrency--cms-22131
Я использую SSDataKit, чтобы помочь с настройкой основных данных, а затем расширься там, где мне нужно. В моих приложениях, которые сильно параллельны, я создаю новый MOC для каждого NSOperation с отношениями: Private Queue -> Main Queue -> Temporary Child Queue (эти операции выполняются по фоновым потокам). В более простых приложениях я использую базовую настройку SSDataKit (родительский/дочерний), и все.
- 1. Рекомендации по использованию контейнеров
- 2. Рекомендации по использованию DataSet?
- 3. Рекомендации по использованию Sitecore
- 4. рекомендации по использованию __builtin_expect
- 5. Рекомендации по использованию Guice
- 6. Шов Рекомендации по использованию
- 7. Рекомендации по использованию инструмента
- 8. Рекомендации по использованию какао
- 9. Рекомендации по использованию Behat
- 10. Рекомендации по использованию drawRect
- 11. Рекомендации по использованию ServerCertificateValidationCallback
- 12. Рекомендации по использованию
- 13. Рекомендации по использованию блокировки
- 14. Рекомендации по использованию ZeroMQ
- 15. Рекомендации по использованию Terraform
- 16. Рекомендации по использованию таймеров
- 17. Рекомендации по использованию языка
- 18. Рекомендации по использованию EditText
- 19. Рекомендации по использованию PyLint?
- 20. Рекомендации по использованию базы данных таблицы пользователей
- 21. Рекомендации по использованию базы данных Mysql
- 22. Рекомендации по использованию реестра Windows
- 23. Рекомендации по использованию потоков Delphi
- 24. Haskell: рекомендации по использованию строгости
- 25. Рекомендации по использованию REST API
- 26. Рекомендации по использованию SQLite3 + Node.js
- 27. C - Рекомендации по использованию строк
- 28. Рекомендации по использованию топологии маркера
- 29. Рекомендации по использованию @ in C#
- 30. Рекомендации по многопоточному использованию Android
Реализация родительского ребенка может привести к медленной работе и усложнению. Ответ на ваш вопрос очень зависит от вашей ситуации. –
Можете ли вы подробнее рассказать? Я хотел бы, чтобы об этом просветлели. – mownier
Основываясь на вашем вопросе и других комментариях в этой теме, я предлагаю вам использовать один контекст главной очереди, поскольку это самый простой подход. Когда вы прочитали документацию и поняли некоторые из тонкостей многопоточности в отношении CoreData, вернитесь и задайте более конкретные вопросы. До тех пор это похоже на попытку объяснить центральную предельную теорему тому, кто не знает средние, дисперсии, независимые переменные или нормальные распределения. –