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