我正在编写一个简单的程序,我在标签上显示数组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中的值,但它确实有效。但是,在函数外部,数组是空的。
答案 0 :(得分:0)
您的代码按预期工作。问题是你太早检查数组,甚至在第一次触发计时器之前。在定时器无效后检查阵列