每次用户点击xcode中的下一个按钮时,如何将值存储到数组中?

时间:2011-05-10 03:56:55

标签: iphone cocoa-touch nsmutablearray nsarray

当用户单击下一个按钮时,它会生成随机数,我想将该数字存储到数组中。我的数组只存储最后一个数字。我应该在'next'函数之外初始化数组吗? 此外,我希望'后退按钮'从最后一个数字读取数组。 请指教。

- (IBAction)Next:(id)sender {

    //generate random number - result is a range of 0-10   
    int randomnumber = (arc4random() % 9);

    //hold the array number up to 10

    NSMutableArray *myArray = [NSMutableArray arrayWithCapacity:10]; 

    // insert the random number into array

    [myArray addObject:[NSNumber numberWithInt:randomnumber]];

    // when I see in debug mode, my array only storing the last number  

    NSLog([myArray description]);

}

- (IBAction)Back:(id)sender {

   //I miss a lot of code in this part

    NSNumber *last_array_num = [myArray objectAtIndex:0];
}

4 个答案:

答案 0 :(得分:2)

每当下次调用NSMutable数组的函数被反复声明时......所以尝试在下一个函数之外声明NSMutable数组

答案 1 :(得分:0)

您应该将数组初始化为类变量。

答案 2 :(得分:0)

randomnumber将在0-8范围内,因为它不能比9更大,因为它不是它的模块。

另外你的问题是你每次都在创建一个新阵列

您应该在外面创建并使用实例变量。

- (id)init {
     myArray =  [NSMutableArray arrayWithCapacity:10];
     [super init];
 }

在头文件中将myArray定义为可变数组

答案 3 :(得分:0)

试试这个,

- (void) initArray
{
   //hold the array number up to 10
   myArray = [NSMutableArray arrayWithCapacity:10];
}

- (IBAction)Next:(id)sender {

    //generate random number - result is a range of 0-10   
    int randomnumber = (arc4random() % 9);

    // insert the random number into array

    [myArray addObject:[NSNumber numberWithInt:randomnumber]];

    // when I see in debug mode, my array only storing the last number  

    NSLog([myArray description]);

}

- (IBAction)Back:(id)sender {

   //I miss a lot of code in this part

    NSNumber *last_array_num = [myArray objectAtIndex:[myArray.count - 1]];
}