NSMutableArray返回空

时间:2014-02-08 09:21:15

标签: ios objective-c arrays nsmutablearray

我正在编写一个简单的程序,我在标签上显示数组1中的数字,然后将数字移动到数组2.但是,数组保持返回空。

这是我的代码。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    [self firstArrayInit];
    [self secondArrayInit];
    [self tranferA1toA2];



}

-(NSMutableArray *) firstArrayInit{
    self.originalArray = [NSMutableArray array];
    for (int i=0; i<16; i++) {
        [self.originalArray addObject:[NSNumber numberWithInteger:i]];
    }

    return self.originalArray;
}

-(NSMutableArray *)secondArrayInit{
    self.secondArray = [NSMutableArray array];

    return self.secondArray;
}

-(void) tranferA1toA2{


    self.mytimer = [NSTimer scheduledTimerWithTimeInterval:2
                                                  target:self
                                                selector:@selector(displayNumber)
                                                userInfo:nil
                                                 repeats:YES];

}

-(NSMutableArray *)addToSecondArray:(int)myNumber{
    [self.secondArray addObject:[self.originalArray objectAtIndex:myNumber]];

    return self.secondArray;
}


-(void) displayNumber{
    static int num=0;
    if (num < level){
        myLabel.text = [NSString stringWithFormat:@"%@", [self.originalArray objectAtIndex:num]];
        [self addToSecondArray:num];

    }

    else{
        [self.mytimer invalidate];
        [myLabel setText:@""];
    }
    num++;


}

我已尝试从displayNumber打印出数组2中的值,但它确实有效。但是,在函数外部,数组是空的。

1 个答案:

答案 0 :(得分:0)

您的代码按预期工作。问题是你太早检查数组,甚至在第一次触发计时器之前。在定时器无效后检查阵列