Конфликт сохранения данных в ядре iPhone - PullRequest
0 голосов
/ 08 июня 2011

Я разрабатываю приложение, которое загружает количество фотографий и XML-файл за одну попытку. У меня есть две основные таблицы данных с отношением один-много (вакансии и фотографии). Одна работа может содержать количество фотографий. После того, как все фотографии загружены, мне нужно загрузить XML-файл, который содержит детали фотографий. Мне нужно следить за тем, какая фотография была успешно загружена, и обновлять поле статуса таблицы заданий, а также статус фотографии. Следующий код иллюстрирует это.

Это работает некоторое время. Некоторое время это не обновляет таблицу заданий. Я ценю, что любой может дать мне знать, что не так со следующим кодом.

NSMutableArray *photosForJob=[[NSMutableArray alloc] initWithArray:[fetchedJob.photos allObjects]];    
self.manageObjectForJobs = fetchedJob;
    __block int count = 0;

dispatch_group_async(group, queue, ^{ 
for (int i = 0; i < [photosForJob count]; i++) 
{
    Photos *ph = [photosForJob objectAtIndex:i];

    if ([ph.status compare:[NSNumber numberWithBool:NO]] == NSOrderedSame) 
    {                
        NSMutableArray *responseArray = [self filePosting:ph.photoName];                
        self.manageObjectForPhotos = ph;

        if ([[responseArray objectAtIndex:0] isEqual:@"200"] && [[responseArray objectAtIndex:1] isEqualToString:ph.photoName]) 
        {
            [self.manageObjectForPhotos setValue:[NSNumber numberWithBool:YES] forKey:@"status"];                  
            count++;
        }                
    }
    else{
        count++;
    }            
}

if (count == [photosForJob count]) 
{
    if ([status compare:[NSNumber numberWithBool:NO]] == NSOrderedSame) 
    {

        NSMutableArray *responseArray = [self filePosting:xmlFile];   

        if ([[responseArray objectAtIndex:0] isEqual:@"200"] && [[responseArray objectAtIndex:1] isEqualToString:xmlFile]){

            [self.manageObjectForJobs setValue:[NSNumber numberWithBool:YES] forKey:@"status"];                    
        }
    }
}

NSError *error;
if (![self.managedObjectContext save:&error]) {            
    NSLog(@"Job status did updat.... : %@", [error description]);
}
else{            
    [UIApplication sharedApplication].applicationIconBadgeNumber = [self fetchJobsForBadge];
    [photosForJob removeAllObjects];
    count = 0;   
}        
});

Большое спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...