ошибка сбоя из-за использования CATiledLayer и Core Data на iOS5 - PullRequest
0 голосов
/ 25 октября 2011

Я использую CATiledLayer для рендеринга NSManagedObjects. Но вы знаете, CATiledLayer рендерит объекты в фоновых потоках. Это приводит к сбою моего приложения на iOS5

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

Ребята, вы знаете лучший способ обойти мою проблему? Пожалуйста, помогите !!!

Извините за мой плохой английский!

1 Ответ

1 голос
/ 25 октября 2011

NSManagedObjectContext не является потокобезопасным, как и NSMangedObjects.Вы должны создать MOC в фоновом потоке, передать любые ID (которые безопасны для потока) и загрузить их в фоновом потоке.

UPDATE:

Одна альтернатива - это создание простых старых объектов obj-c или даже обычного NSDictionay, который содержит необходимые данные и передает их в фоновый поток.Поэтому после заполнения вашего MO создайте POOCO, скопируйте необходимые данные и передайте их фоновому потоку для обработки.Это позволит избежать доступа к диску.

...