ぜん通。

<ぜんつう>ネトゲとかソシャゲとか、雑記。

   

【iPhoneアプリ開発】NSDateを使った毎秒処理

 NSDateを使って何秒間に1回決まった関数を呼び出す処理です。

①呼び出す間隔と関数を設定する。
②設定後常に関数は呼ばれ続けるが、flgがFALSEのため処理は行わない。
③Startボタンが押されたらflgがTRUEになり、処理が行われる。
また、StartボタンをStopボタンに変える。
④Stopボタンが押されたらFlgをFLASEに戻す。


@implementation RootViewController

NSDate *date_now;
BOOL time_flg=FALSE;


- (void) viewDidLoad {
UIBarButtonItem *play = [[UIBarButtonItem alloc] 
initWithBarButtonSystemItem:UIBarButtonSystemItemPlay 
target:self 
action:@selector(start_down:)]; // Slideshow を開始するボタン
// 何秒間に1回どの関数をコールするかを設定する。(下記記述では0.01秒間に1回onTimerがコールされる)
timer = [NSTimer scheduledTimerWithTimeInterval:(0.01) 
target:self selector:@selector(onTimer:)
userInfo:nil repeats:YES];
}


/* 画面が解放される際にタイマーを停止 */
- (void)viewDidDisappear:(BOOL)animated {
[timer invalidate];
}


/* タイマーに登録されたメソッド */
-(void)onTimer:(NSTimer*)timer {
    if(time_flg){
        //Stopが押されるまでに毎回行う処理
[now release];
    }
}


/* スタートボタンが押された時に呼ばれる */
-(IBAction) start_down:(id) sender{

UIBarButtonItem *stop = [[UIBarButtonItem alloc] 
initWithBarButtonSystemItem:UIBarButtonSystemItemStop 
target:self 
action:@selector(stop_down:)]; // 停止ボタンを生成
self.navigationItem.rightBarButtonItem = stop;
[stop release];

    time_flg = TRUE;
    date_now = [NSDate date];
    [date_now retain];
}


/* ストップボタンが押された時に呼ばれる */
-(IBAction) stop_down:(id) sender{
    time_flg = FALSE;
UIBarButtonItem *start = [[UIBarButtonItem alloc] 
initWithBarButtonSystemItem:UIBarButtonSystemItemPlay 
target:self 
action:@selector(start_down:)]; // 開始するボタンを生成
self.navigationItem.rightBarButtonItem = start;
[start release];
if(animetionFlg){
[date_now release];
}
animetionFlg = FALSE;
}

拍手[0回]

COMMENT

NAME
TITLE
MAIL(非公開)
URL
EMOJI
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
COMMENT
PASS(コメント編集に必須です)
SECRET
管理人のみ閲覧できます

TRACKBACK

Trackback URL:

カウンター

マジモン窓

プロフィール

HN:
Zenchuu
性別:
男性
職業:
えんじにあ
自己紹介:
いわゆるオタク系。
HNのzenchuuは子供のころからのあだ名。
iPhoneアプリの制作〜運用を仕事にしてます。
人間強度は最高レベルだと自負。
友達?要らねーよヽ(´ー`)ノ

Twitter

いろいろ

Copyright ©  -- ぜん通。 --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS /  /