iOSアプリ開発 viewDidAppear で NSTimer scheduledTimerWithTimeInterval を読んだが call されない

| コメント(0) | トラックバック(0)

----



- (void)viewDidAppear:(BOOL)animated
{
    timer = [NSTimer scheduledTimerWithTimeInterval:0.1f target:self selector:@selector(someSelector) userInfo:nil repeats:YES] ;
}


といった感じでタイマーをセットしたが、viewが表示されても一向に someSelector が呼ばれない。

viewController の呼び出し場所によっては、同じコードでも呼ばれるときがある。

調べた結果以下のようにメインスレッドでタイマーをセットすると呼ばれるようになりました。


- (void)startTimer
{
    timer = [NSTimer scheduledTimerWithTimeInterval:0.1f target:self selector:@selector(someSelector) userInfo:nil repeats:YES] ;
}

- (void)viewDidAppear:(BOOL)animated
{
        [self performSelectorOnMainThread:@selector(startTimer) withObject:nil waitUntilDone:NO] ;
}





 

トラックバック(0)

トラックバックURL: http://onno.jp/mt/cgi-bin/mt-tb.cgi/352

コメントする

このブログ記事について

このページは、管理者が2014年9月 6日 06:39に書いたブログ記事です。

ひとつ前のブログ記事は「iOSアプリ開発 tabBar setHidden でタブを消したのに、その裏のタップが検出できない」です。

次のブログ記事は「AWS RDS connection blocked」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 5.13-ja