Skip to content

Instantly share code, notes, and snippets.

View Mozilla9's full-sized avatar
💭
I may be slow to respond.

Serge Maslyakov Mozilla9

💭
I may be slow to respond.
View GitHub Profile

Проблемы CoreData c многозадачностью:

  • CoreData не thread safe. NSManagedObject's нельзя передавать между потоками. Можно передавать только ObjectId's. Сущности, которые используются в главном потоке, должны загружаться также в главном потоке. Это связано с тем, что у каждой сущности свой контекст в котором она существует + каждый контекст имеет свой тип. Если это NSPrivateQueueConcurrencyType, то у них разные приватные очереди, в которых они работают, и в каком именно бэкграунд потоке будет сохранение мы знать не можем. Если изменяем сущность в одном контексте, то другие контексты не видят этих изменений. Для мержа изменений из одного контекста в другой можно использовать нотификации - каждый контекст кидает эвент когда сохраняет изменения.
  • http://www.slideshare.net/xzolian/core-data-with-multiple-managed-object-contexts
  • [http://floriankugler.com/2013/04/29/concurrent-core-data-stack-performance-shootou
@Mozilla9
Mozilla9 / structure_of_ios-product-extension.md
Last active October 24, 2016 22:05
Structure of product-extension iOS project
  • Базовое самостоятельное приложение (продукт)
  • Приложение для vendor-a на основе базового (экстеншен)

Что позволяет:

  • переопределение локализации
  • переопределение графических ресурсов
  • переопределение сторибордов/ксибов/реализаций сервисов-классов

Работа с кодом в продукте: