当用户单击下一个按钮时,它会生成随机数,我想将该数字存储到数组中。我的数组只存储最后一个数字。我应该在'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];
}
答案 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]];
}