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不同的值。这就是我想要的。但是当我用这段代码记录它们时:

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

它们都与最后一个对象相同。为什么会这样?谢谢你。

4

2 回答 2

1

这可能是因为您使用 backlist.count-1 作为索引而不是使用 i。

尝试这个:

while (i!=backlist.count) {
        NSLog(@"%@ %@",[[backlist objectAtIndex:i] objectForKey:@"id" ],[[backlist objectAtIndex:i] objectForKey:@"name" ]);i++;
    }
于 2013-08-15T12:21:42.153 回答
0

我找到了。我在 .m 文件中的 @implementation 下定义了 NSMutableArray 和 NSMutableDictionary。我必须清空反向传播。

所以我改变了我的代码:

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

  [backlist addObject:backprop];NSInteger i=0;
  ...
}
于 2013-08-15T13:05:52.490 回答