Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSMutableArray';s对象是相同的_Objective C_Nsmutablearray_Nsmutabledictionary - Fatal编程技术网

Objective c NSMutableArray';s对象是相同的

Objective c NSMutableArray';s对象是相同的,objective-c,nsmutablearray,nsmutabledictionary,Objective C,Nsmutablearray,Nsmutabledictionary,在这里,我将backprops添加到backlist。我添加了不同的值。这就是我想要的。 但是当我用这个代码记录它们时: NSMutableDictionary *backprop; NSMutableArray *backlist; [backprop setValue:self.val forKey:@"id"];//NSLog for self.val [backprop setValue:title.text forKey:@"name"];//NSLog for title.text

在这里,我将
backprops
添加到
backlist
。我添加了不同的值。这就是我想要的。 但是当我用这个代码记录它们时:

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];

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

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

试试这个:

while (i!=backlist.count) {
        NSLog(@"%@ %@",[[backlist objectAtIndex:i] objectForKey:@"id" ],[[backlist objectAtIndex:i] objectForKey:@"name" ]);i++;
    }
我找到了。 我在.m文件的@implementation下定义了NSMutableArray和NSMutableDictionary。。 我必须清空后支柱

所以我改变了我的代码:

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

也许这是因为您实际上记录了最后一个对象,而不是使用
i
变量作为索引-\ux-实际上您是对的,我的错,但没有改变。
-(void)....{
NSMutableDictionary *backprop = [[NSMutableDictionary alloc] init];
  [backprop setObject:self.val forKey:@"id"];
  [backprop setObject:title.text forKey:@"name"];

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