2014-02-08 2 views
0

Я пишу простую программу, которая отображает число из массива 1 на метке, а затем переводит число в массив 2. Однако массив продолжает возвращать пустой.NSMutableArray возвращает пусто

Вот мой код.

- (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++; 


} 

Я попытался распечатки значения в массиве 2 из displayNumber, и она работает. Но вне функции массив пуст.

+0

Что такое переменная уровня? где оно объявлено? какое значение оно назначено? –

+0

где вы называете метод addToSecondArray? –

+0

@NeilGaliaskarov in displayNumber метод –

ответ

0

Ваш код работает так, как предполагается. Проблема в том, что вы проверяете массив слишком рано, даже до того, как таймер будет запущен в первый раз. Проверьте массив после того, как таймер недействителен.

Смежные вопросы