Основные данные и потоки / Grand Central Dispatch

Я новичок в Grand Central Dispatch (GCD) и Core Data, и мне нужна ваша помощь, чтобы использовать Core Data с CGD, чтобы пользовательский интерфейс не был заблокирован, пока я добавляю 40.000 записи в Core Data.

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

Чего я еще не мог сделать, так это сложить по кусочкам.

Итак, в моем коде мне нужна ваша помощь, как это сделать.

У меня есть:

/*some other code*/

for (NSDictionary *memberData in arrayWithResult) {

    //get the Activities for this member
    NSArray *arrayWithMemberActivities = [activitiesDict objectForKey:[memberData objectForKey:@"MemberID"]];

    //create the Member, with the NSSet of Activities
    [Members createMemberWithDataFromServer:memberData
                         andActivitiesArray:arrayWithMemberActivities
                              andStaffArray:nil
                           andContactsArray:nil
                     inManagedObjectContext:self.managedObjectContext];
}

Как я могу преобразовать это для работы в фоновом режиме, а затем, по завершении сохранения, сохранить данные и обновить пользовательский интерфейс, не блокируя пользовательский интерфейс при сохранении 40 000 объектов?

40
задан Monolo 15 February 2012 в 17:48
поделиться