2013-02-21 145 views
0

基本上有兩個視圖控制器oneviewcontroller和mainviewcontroller。在oneviewcontroller中定義了myTimer。在mainviewcontroller我試圖暫停並恢復使用UIButton myTimer。但是,得到消息爲選擇 'myTimer'沒有已知類選擇器'myTimer'的方法

在OneViewController定義的NSTimer沒有已知的類方法,如myTimer

@property (nonatomic, retain) NSTimer *myTimer; 

@synthesize myTimer; 

- (void)viewDidLoad { 

[self myTimerMethod]; 

[super viewDidLoad]; 

} 


- (void)myTimerMethod{ 

NSLog(@"myTimerMethod is Called"); 

myTimer = [NSTimer scheduledTimerWithTimeInterval:2.4 
              target:self 
             selector:@selector(updateView:) 
             userInfo:nil 
              repeats:YES]; 

} 

- (void)updateView:(NSTimer *)theTimer 
{ 
if (index < [textArray count]) 
{ 

    self.textView.text = [self.textArray objectAtIndex:index]; 
    self.imageView.image = [self.imagesArray objectAtIndex:index]; 
    index++; 
    }else{ 

    index = 0; 

    } 

餘米試圖從mainviewcontroller

暫停和恢復myTimer在mainviewcontroller.h

@class OneViewController; 

    @property (strong, nonatomic) OneViewController *oneviewcontroller; 
    @synthesize oneviewcontroller = _oneviewcontroller; 

    -(void)playpauseAction:(id)sender { 

    if([audioPlayer isPlaying]) 
    { 
    [sender setImage:[UIImage imageNamed:@"music.png"] forState:UIControlStateNormal]; 

    [audioPlayer pause]; 

    [[OneViewController myTimer] invalidate]; **\\No Known class method for selector 'myTimer'** 



    }else{ 

    [sender setImage:[UIImage imageNamed:@"audiostop.png"] forState:UIControlStateNormal]; 

    [audioPlayer play]; 

    [[OneViewController myTimer] fire]; **\\No Known class method for selector 'myTimer'** 


    if(isFirstTime == YES) 
    { 
     self.timer = [NSTimer scheduledTimerWithTimeInterval:06.0 
                 target:self 
                selector:@selector(displayviewsAction:) 
                userInfo:nil 
                repeats:NO]; 
     isFirstTime = NO; } } } 

我該如何解決這個錯誤。

感謝您的幫助。

+0

用'self'替換'OneViewController'在該行:要解決該消息的實例'OneViewController'類,而不是類本身。 – warrenm 2013-02-21 21:51:13

回答

0

代替[[OneViewController myTimer] invalidate];使用[self.oneviewcontroller.myTimer invalidate];

此外,在OneViewController執行,而不是myTimer = [NSTimer scheduledTimerWithTimeInterval:.....使用self.myTimer = [NSTimer scheduledTimerWithTimeInterval:.....

相關問題