从数组调用元素并将其分配给变量?

时间:2018-06-25 13:08:43

标签: objective-c arrays xcode nsmutablearray element

有人可以告诉我如何从数组中调用元素并将其分配给变量吗?

在我的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];
}

,其中countnumber和count为int。问题是它无法识别结果数组。错误是“使用未声明的标识符'结果'” 有人可以提供解决方案吗?非常感谢

1 个答案:

答案 0 :(得分:2)

问题是因为resultviewDidLoad内部的局部变量,您只能在viewDidLoad内部使用它。如果您想要一个既可以在viewDidLoadnextpiece中使用的变量,则可以使用。我建议将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