0

Как вы можете использовать Core Data и GCD, когда методы, вызываемые в фоновом потоке, нуждаются в множестве разных NSManagedObject? Вы, как вызывающий, возможно, не знаете, какие объекты будут необходимы в подзаголовках?Подход к Core Data + GCD для комплексной обработки фоновых данных

Подумайте о сложной процедуре загрузки, разбора и сохранения со многими управляемыми объектами, вспомогательных методах для дат, статусов и т. Д. Когда вы запустите фоновый поток с GCD, вам понадобится новый NSManagedObjectContext, это точно. Но вы не можете сказать, какие управляемые объекты понадобятся каждому под-методу. Итак, вам нужно передать контекст каждому методу помощника, например. просто для того, чтобы сказать разницу NSDate?

Есть ли простой подход, который не взрывает строки кода?

+0

AFAIK каждый управляемый объект несет свой собственный контекст управляемого объекта, поэтому достаточно передать объект различным методам. Кроме того, вы можете реализовать методы как методы экземпляра в пользовательском подклассе для объекта управляемого объекта. – Eimantas

ответ

0

Один из подходов, который может соответствовать законопроекту о не взорвании кода, может заключаться в том, чтобы получать ваши данные в ваших различных потоках фона и кодировать их все в словари. Если вы используете JSON в качестве формата передачи, это будет очень мало строк кода.

Затем вы можете передать все это блоку основного потока, чтобы создать управляемый объект и вставить его в контекст управляемого объекта. Опять же, это не принесло бы больших затрат, по сравнению с однопоточным решением.

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

  • Нет связанных вопросов^_^