2013-08-15 2 views
0
NSMutableDictionary *backprop; 
NSMutableArray *backlist; 

[backprop setValue:self.val forKey:@"id"];//NSLog for self.val 
[backprop setValue:title.text forKey:@"name"];//NSLog for title.text 
[backlist insertObject:backprop atIndex:backlist.count]; 

Здесь я добавляю backprops в backlist. Я добавляю NSLogs разные значения. Это то, что я хочу. Но когда я вхожу их с этим кодом:Объекты NSMutableArray такие же

while (i!=backlist.count) { 
     NSLog(@"%@ %@",[[backlist objectAtIndex:i] objectForKey:@"id" ],[[backlist objectAtIndex:i] objectForKey:@"name" ]);i++; 
    } 

все же с последним объектом они. Почему это так? Спасибо.

+0

возможно, что это происходит потому, что вы на самом деле войти последний объект вместо использования 'i' переменной для индексов -_- – Eugene

+0

На самом деле you'r право, моя вина, но Бесполезный Не меняйте. –

ответ

0

Я нашел его. Я определяю NSMutableArray и NSMutableDictionary в @implementation в .m файле. Мне пришлось пустить backprop.

Так что я изменил код:

-(void)....{ 
NSMutableDictionary *backprop = [[NSMutableDictionary alloc] init]; 
    [backprop setObject:self.val forKey:@"id"]; 
    [backprop setObject:title.text forKey:@"name"]; 

    [backlist addObject:backprop];NSInteger i=0; 
    ... 
} 
1

Возможно, это связано с тем, что вы используете backlist.count-1 как свой индекс вместо использования i.

попробовать это:

while (i!=backlist.count) { 
     NSLog(@"%@ %@",[[backlist objectAtIndex:i] objectForKey:@"id" ],[[backlist objectAtIndex:i] objectForKey:@"name" ]);i++; 
    } 
Смежные вопросы