2013-10-05 1 views
0

Я просматриваю NSMutableArray словаря и запрашиваю у WebService информацию из каждой информации.Добавление NSMutableDictionary's в NSMutableArray

Проблема в том, что после получения данных мне нужно обновить 2 ключа одного и того же массива словаря, и когда я добавил объект, массив будет пустым.

Что не так?

PS: использование ARC

NSMutableArray* arrayOfDicts = [NSMutableArray arrayWithObjects: 
       [NSMutableDictionary dictionaryWithObjectsAndKeys: 
        @"2013",@"year", 
        @"a1beb511-7fe1-434b-ab87-a0d02fb47713",@"yearTB", 
        @"",@"receita_arrecadada", 
        @"",@"receita_prevista_atualizada", 
       nil], 
       [NSMutableDictionary dictionaryWithObjectsAndKeys: 
        @"2012",@"year", 
        @"5d20f841-d790-4671-ae26-505c9a8c7f76",@"yearTB", 
        @"",@"receita_arrecadada", 
        @"",@"receita_prevista_atualizada", 
       nil], 
       nil]; 

__block NSMutableArray* arrayTemp = [[NSMutableArray alloc] init];; 
__block NSMutableDictionary* dicTemp; 

for(dicTemp in arrayOfDicts){ 

    NSString* year = [dicTemp objectForKey:@"year"]; 
    NSString* yearTB = [dicTemp objectForKey:@"yearTB"]; 
    NSMutableDictionary *newDict = [[NSMutableDictionary alloc] init]; 

    [RequestFacade getReceiptsTotalInYear:[NSString stringWithFormat:@"%@", yearTB] andCompletion:^(Receipt *receipt) { 

     //NSLog(@"%@",receipt.receita_arrecadada); // Print the correct actual value 

     [newDict addEntriesFromDictionary:dicTemp]; 

     [newDict setObject:year forKey:@"year"]; 
     [newDict setObject:yearTB forKey:@"yearTB"]; 
     [newDict setObject:receipt.receita_arrecadada forKey:@"receita_arrecadada"]; 
     [newDict setObject:receipt.receita_atualizada forKey:@"receita_atualizada"]; 

     [arrayTemp addObject:newDict]; 
     NSLog(@"%@", arrayTemp); // shows me the array of dicts 

     // until here, its ok! 
    }]; 
} 
NSLog(@"%@", arrayTemp); // shows me an empty array...F*CK! 
+0

Сначала инициализируйте arrayOfDict. – iProgrammer

ответ

0

Initialise ваш arrayOfDict.

NSMutableArray * arrayOfDict = [[NSMutableArray alloc] init]; 

Массив пуст, потому что вы его не инициализируете. напишите вышеприведенную строку вверху, а затем добавьте

[arrayOfDict arrayWithObjects: <UR ITEMS>]; 

Надеюсь, что это работает .. !! Happy Coding

+0

Этот var является примером реального кода. Массив уже инициализирован. Проблема заключается в том, что я добавляю к новому массиву. –

+0

Я думаю, что ваш массив выпущен после выполнения цикла for, но не знает причины, попробуйте отладить его. А также попробуйте сделать newArray как свойство класса. @property (nonatomic, сохранить) NSMutableArray * newArray; и инициализировать этот массив, используя self.newArray; – iProgrammer