如何使用iPhone中的按钮标签将值存储到NSMutableArray中?

时间:2011-07-15 14:03:58

标签: iphone tags uibutton nsmutablearray store

我有10个按钮,点击按钮会增加一些数值。我想将值放入NSMutableArray中。但我不想添加依赖于按钮索引的值,我想在随机点击任何按钮时将值添加到数组中作为相同的顺序(0到ArrayCount)。

例如:

        switch (btn.tag) {
                       case 0:
                             itemValue = itemValue + 15;         //item value is 30
                             [amountArray addObject:itemValue];          
                             break;

                       case 1:
                             itemValue = itemValue + 30;          //item value is 60
                             [amountArray addObject:itemValue];          
                             break;

                       case 2:
                             itemValue = itemValue + 25;           //item value is 50
                             [amountArray addObject:itemValue];          
                             break;

                       case 3:
                             itemValue = itemValue + 40;            //item value is 80
                             [amountArray addObject:itemValue];          
                             break;

                        case 4:                        //item value is 45
                             itemValue = itemValue + 15; 
                             [amountArray addObject:itemValue];          
                             break;

在这种情况下,我按按钮索引4,3,2,1,0的顺序点击按钮,预期结果数组是

                       {45,80,50,60,30}. 

如果我使用过这样的东西,

         [amountArray replaceObjectAtIndex:btn.tag withObject:itemValue];

,结果是{30,60,50,80,45}。

但是我希望将数组中的值通常存储为0到arrayCount。每次点击按钮时,它会增加一些值,因此不应该允许重复值,只能更改值。

谢谢!

2 个答案:

答案 0 :(得分:1)

NSMutableSet将避免dublicate。

所以不要使用数组而只使用NSMutableSet。

       NSMutableSet *amountSet=[[NSMutableSet alloc]init];   

       [amountSet addObject:itemValue];

答案 1 :(得分:0)

您正在向需要使用的错误的数组中添加一个int

[amountArray addObject:[NSNumber numberWithInt:itemValue]];

此外,您还需要使用数组

的方法检查数组中是否有值
if([array indexOfObject:[NSNumber numberWithInt:itemValue]] == NSNotFound) {
   //Add object here to mutable array
}

与否以后,您需要使用sortDescripter或NSPredicate对数组进行排序。