0

基本的に2つのビューコントローラー、1つのビューコントローラーとメインビューコントローラーがあります。oneviewcontrollerでmyTimerを定義しました。mainviewcontrollerで、UIButtonを使用して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; } } }

このエラーを修正するにはどうすればよいですか。

手伝ってくれてありがとう。

4

1 に答える 1

0

[[OneViewController myTimer] invalidate];使用する代わりに [self.oneviewcontroller.myTimer invalidate];

また、OneViewController実装では、myTimer = [NSTimer scheduledTimerWithTimeInterval:.....使用する代わりにself.myTimer = [NSTimer scheduledTimerWithTimeInterval:.....

于 2013-02-21T21:58:59.987 に答える