Как сохранить значение в массиве каждый раз, когда пользователь нажимает следующую кнопку в xcode? - PullRequest
0 голосов
/ 10 мая 2011

Когда пользователь нажимает следующую кнопку, он генерирует случайное число, и я хотел бы сохранить число в массиве.Мой массив хранит только последний номер.Должен ли я инициализировать массив вне функции «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 ]

2 голосов
/ 10 мая 2011

Всякий раз, когда функция, вызывающая следующий массив NSMutable, объявляется снова и снова ... поэтому попробуйте объявить массив NSMutable вне следующей функции.

0 голосов
/ 10 мая 2011

Попробуйте это,

- (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]];
}
0 голосов
/ 10 мая 2011

случайное число будет в диапазоне 0-8, так как оно не может быть больше 9, потому что это не будет его модуль.

Также ваша проблема в том, что вы каждый раз создаете новый массив

Вы должны создать его снаружи и использовать переменную экземпляра.

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

определите в вашем заголовочном файле myArray как изменяемый массив

0 голосов
/ 10 мая 2011

Вы должны инициализировать массив как переменную класса.

...