Вызов элемента из массива и присвоение его переменной? - PullRequest
0 голосов
/ 25 июня 2018

Может кто-нибудь сказать мне, как вызвать элемент из массива и присвоить его переменной?

В моей viewdidload я создаю случайный массив чисел.

- (void)viewDidLoad {
    int n = 40;
    NSMutableArray *numbers = [NSMutableArray array];
    for (int i = 1; i <= n; i++) {
        [numbers addObject:[NSNumber numberWithInt:i]];
    }
    NSMutableArray *result = [NSMutableArray array];
    while ([numbers count] > 0) {
        int r = arc4random() % [numbers count];
        NSNumber *randomElement = [numbers objectAtIndex:r];
        [result addObject:randomElement];
        [numbers removeObjectAtIndex:r];
    }
    NSLog(@"%@", result);
    NSLog (@"The 4th integer is: %@", [result objectAtIndex:3]);
}

ВВ другом разделе я хотел бы назвать эти значения.Например,

-(void)nextpiece{
    countnumber=2;
    count=[result objectAtIndex:countnumber];
}

, где число и число являются целыми.Проблема в том, что он не распознает массив результатов.Ошибка «Использование необъявленного идентификатора« результат »». Может ли кто-нибудь предложить решение?Большое спасибо

1 Ответ

0 голосов
/ 25 июня 2018

Проблема в том, что result является локальной переменной внутри viewDidLoad, и вы можете использовать ее только внутри viewDidLoad.Если вам нужна переменная, которую можно использовать как в viewDidLoad, так и в nextpiece.Я предлагаю сделать result как собственность вашего класса.

Например.

@interface YourViewController ()

@property (nonatomic, strong) NSMutableArray* result;

@end

@implementation YourViewController

- (void)viewDidLoad {
  int n = 40;
  NSMutableArray *numbers = [NSMutableArray array];
  for (int i = 1; i <= n; i++) {
    [numbers addObject:[NSNumber numberWithInt:i]];
  }
  _result = [NSMutableArray array];
  while ([numbers count] > 0) {
    int r = arc4random() % [numbers count];
    NSNumber *randomElement = [numbers objectAtIndex:r];
    [_result addObject:randomElement];
    [numbers removeObjectAtIndex:r];
  }
  NSLog(@"%@", _result);
  NSLog (@"The 4th integer is: %@", [_result objectAtIndex:3]);
}

-(void)nextpiece{
  int countnumber = 2;
  NSNumber *count = [_result objectAtIndex:countnumber];
}

@end
...