Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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
Ios 如何在数组中添加新对象而不影响其他对象_Ios_Objective C - Fatal编程技术网

Ios 如何在数组中添加新对象而不影响其他对象

Ios 如何在数组中添加新对象而不影响其他对象,ios,objective-c,Ios,Objective C,您好,我想知道当您单击一个按钮时如何操作,它将在数组中添加一个新对象,并且不会影响其他对象,如: 这是我的密码: x = x + 1; dictData = [[NSMutableDictionary alloc] init]; for (int i = 0; i < x; i++) { [dictData setObject:[menuData itemName] forKey:@"dishName"]; [dictData setObject:@"1" forKey

您好,我想知道当您单击一个按钮时如何操作,它将在数组中添加一个新对象,并且不会影响其他对象,如:

这是我的密码:

x = x + 1;
dictData = [[NSMutableDictionary alloc] init];

for (int i = 0; i < x; i++) {

    [dictData setObject:[menuData itemName] forKey:@"dishName"];
    [dictData setObject:@"1" forKey:@"quantity"];
    [dictData setObject:[menuData itemPrice] forKey:@"price"];

    [arrMut addObject:dictData];
}
这是预期的输出

{

  name = charles1;

},{

name = charles2;

}

因为您正在添加相同的词典

换成

for (int i = 0; i < x; i++) {
    dictData = [[NSMutableDictionary alloc] init]; // move this line to inside of the loop
    [dictData setObject:[menuData itemName] forKey:@"dishName"];
    [dictData setObject:@"1" forKey:@"quantity"];
    [dictData setObject:[menuData itemPrice] forKey:@"price"];

    [arrMut addObject:dictData];
}
for(int i=0;i

for(int i=0;i
每次[menuData itemName]方法似乎都返回相同的对象。 您可以在数组中插入menuData对象,然后在for循环的每次迭代中访问menuData对象

 NSMutableArray *arrMenuData = //This array should contain the menuData objects
 for (int i = 0; i < x; i++) {
dictData = [[NSMutableDictionary alloc] init]; // move this line to inside of the loop
[dictData setObject:[[arrMenuData objectAtIndex:i] itemName] forKey:@"dishName"]; //A typecast to menuData type may be required, please test.
[dictData setObject:@"1" forKey:@"quantity"];
[dictData setObject:[[arrMenuData objectAtIndex:i] itemPrice] forKey:@"price"];

[arrMut addObject:dictData];
NSMutableArray*arrMenuData=//此数组应包含menuData对象
对于(int i=0;i

}

您可以使用数组的addObjects属性。请显示您的代码,说明您在何处创建对象并将其添加到数组中。代码是诊断您的问题所必需的。您好!谢谢你的回复。我编辑我的帖子,谢谢。嗨,陈布莱恩!谢谢你的回复。我试过你的答案,但结果是:({dishName=“Singapore Shrimp Rolls”;price=“263.39”;quantity=1;},{dishName=“Singapore Shrimp Rolls”;price=“263.39”;quantity=1;})它的值相同。这是我的问题,我在数组中有不同的数据
I
从未用于创建字典,所以所有的东西都是用相同的值创建的,这是你期望的吗?我需要有这个输出({dishName=“Singapore Shrimp Rolls”;price=“263.39”;quantity=1;},{dishName=“Sushi Rolls”;price=“123.39”;quantity=2;})谢谢。那么你需要在每次迭代中读取不同的值。如果需要将
@“1”
替换为类似
@(i)
[@(i)说明]
的内容
for (int i = 0; i < x; i++) {
    [arrMut addObject:[@{@"dishName" : [menuData itemName],
                         @"quantity" : @"1",
                         @"price" : [menuData itemPrice],
                        } mutableCopy]];
}
 NSMutableArray *arrMenuData = //This array should contain the menuData objects
 for (int i = 0; i < x; i++) {
dictData = [[NSMutableDictionary alloc] init]; // move this line to inside of the loop
[dictData setObject:[[arrMenuData objectAtIndex:i] itemName] forKey:@"dishName"]; //A typecast to menuData type may be required, please test.
[dictData setObject:@"1" forKey:@"quantity"];
[dictData setObject:[[arrMenuData objectAtIndex:i] itemPrice] forKey:@"price"];

[arrMut addObject:dictData];