我有10个按钮,我使用开关盒写了按钮动作。当我点击每个按钮时,它会增加一些数值。如果我使用10个不同的变量来设置计数值变量,它将起作用。但是,还有其他任何可能的方法来实现这一目标吗?
我想在可变数组中动态更改值。
例如:
-(IBAction) btnAction : (id) sender{
switch (btn.tag) {
case 0:
// amountArray is mutable array.
startCocoCount = startCocoCount + 10;
//NSString *str = [NSString stringWithFormat:@"%d", startCocoCount];
//[amountArray addObject:str];
break;
case 1:
startCocoCount = startCocoCount + 15;
//NSString *str = [NSString stringWithFormat:@"%d", startCocoCount];
//[amountArray addObject:str];
break;
case 2:
startCocoCount = startCocoCount + 20;
//NSString *str = [NSString stringWithFormat:@"%d", startCocoCount];
//[amountArray addObject:str];
break;
case 3:
startCocoCount = startCocoCount + 25;
//NSString *str = [NSString stringWithFormat:@"%d", startCocoCount];
//[amountArray addObject:str];
break;
case 4:
startCocoCount = startCocoCount + 30;
//NSString *str = [NSString stringWithFormat:@"%d", startCocoCount];
//[amountArray addObject:str];
break;
case 5:
startCocoCount = startCocoCount + 35;
//NSString *str = [NSString stringWithFormat:@"%d", startCocoCount];
//[amountArray addObject:str];
break;
case 6:
startCocoCount = startCocoCount + 40;
//NSString *str = [NSString stringWithFormat:@"%d", startCocoCount];
//[amountArray addObject:str];
break;
case 7:
startCocoCount = startCocoCount + 50;
//NSString *str = [NSString stringWithFormat:@"%d", startCocoCount];
//[amountArray addObject:str];
break;
case 8:
startCocoCount = startCocoCount + 60;
//NSString *str = [NSString stringWithFormat:@"%d", startCocoCount];
//[amountArray addObject:str];
break;
case 9:
startCocoCount = startCocoCount + 20;
//NSString *str = [NSString stringWithFormat:@"%d", startCocoCount];
//[amountArray addObject:str];
break;
case 10:
startCocoCount = startCocoCount + 20;
//NSString *str = [NSString stringWithFormat:@"%d", startCocoCount];
//[amountArray addObject:str];
break;
default:
break;
}
}
在表格视图中,
cell.textLabel.text = [amountArray objectAtindex:indexPath];
如果我使用单个变量,它将不会为所有条件设置,那么我该如何实现呢?
答案 0 :(得分:1)
NSNumber
允许您存储到数组中。要通过索引访问数组,您需要使用NSNumber
预先填充数组,以便索引可用。
//You will need to know the index otherwise use a dictionary with named keys
NSNumber *num = [amountArray objectAtIndex:index];
num = [NSNumber numberWithInt:[num intValue] + 20];
[amountArray replaceObjectAtIndex:index withObject:num];
答案 1 :(得分:1)
你可以试试这个。它会起作用。
int startCocoCount;
NSMutableArray *dataArray = [[NSMutableArray alloc] init];
for(int i=0;i<11;i++)
{
[dataArray addObject:@"0"];
}
对于该方法,它将如下:
-(IBAction) btnAction : (id) sender{
switch ([sender tag]) {
case 0:
startCocoCount = startCocoCount + 10;
[dataArray replaceObjectAtIndex:0 withObject:[NSString stringWithFormat:@"%d", [[dataArray objectAtIndex:0] intValue] + startCocoCount]];
break;
case 1:
startCocoCount = startCocoCount + 15;
[dataArray replaceObjectAtIndex:1 withObject:[NSString stringWithFormat:@"%d", [[dataArray objectAtIndex:1] intValue] + startCocoCount]];
break;
case 2:
startCocoCount = startCocoCount + 20;
[dataArray replaceObjectAtIndex:2 withObject:[NSString stringWithFormat:@"%d", [[dataArray objectAtIndex:2] intValue] + startCocoCount]];
break;
case 3:
startCocoCount = startCocoCount + 25;
[dataArray replaceObjectAtIndex:3 withObject:[NSString stringWithFormat:@"%d", [[dataArray objectAtIndex:3] intValue] + startCocoCount]];
break;
case 4:
startCocoCount = startCocoCount + 30;
[dataArray replaceObjectAtIndex:4 withObject:[NSString stringWithFormat:@"%d", [[dataArray objectAtIndex:4] intValue] + startCocoCount]];
break;
case 5:
startCocoCount = startCocoCount + 35;
[dataArray replaceObjectAtIndex:5 withObject:[NSString stringWithFormat:@"%d", [[dataArray objectAtIndex:5] intValue] + startCocoCount]];
break;
case 6:
startCocoCount = startCocoCount + 40;
[dataArray replaceObjectAtIndex:6 withObject:[NSString stringWithFormat:@"%d", [[dataArray objectAtIndex:6] intValue] + startCocoCount]];
break;
case 7:
startCocoCount = startCocoCount + 50;
[dataArray replaceObjectAtIndex:7 withObject:[NSString stringWithFormat:@"%d", [[dataArray objectAtIndex:7] intValue] + startCocoCount]];
break;
case 8:
startCocoCount = startCocoCount + 60;
[dataArray replaceObjectAtIndex:8 withObject:[NSString stringWithFormat:@"%d", [[dataArray objectAtIndex:8] intValue] + startCocoCount]];
break;
case 9:
startCocoCount = startCocoCount + 20;
[dataArray replaceObjectAtIndex:9 withObject:[NSString stringWithFormat:@"%d", [[dataArray objectAtIndex:9] intValue] + startCocoCount]];
break;
case 10:
startCocoCount = startCocoCount + 20;
[dataArray replaceObjectAtIndex:10 withObject:[NSString stringWithFormat:@"%d", [[dataArray objectAtIndex:10] intValue] + startCocoCount]];
break;
default:
break;
}
}
如果您有任何疑问,请与我联系。
答案 2 :(得分:0)
我认为你可以像这样简化
-(IBAction) btnAction : (id) sender{
startCocoCount = startCocoCount + btn.tag;
}
您可以设置按钮的标签以保存值。