2010-12-10 8 views
0

ここにnoobのビット。NSTimerを使用してアプリケーションをシャットダウン

ループサウンドを再生するアプリを開発しています。私はタイマーを使用して特定の時間の後に、ユーザーをアプリをシャットダウンする機能を与えたいと思います。アイデアはユーザーがボタンを押して、タイマーがなくなるとアプリがシャットダウンするというものです。

ボタンを押すと、アプリケーションがクラッシュします。ここで

は、私がこれまでに得たものです:

- (IBAction)timer:(id)sender{ 

    timer = [NSTimer scheduledTimerWithInterval: 10.0 target:self selector:@selector(targetMethod:) userInfo:nil repeats: YES]; 

} 


-(void) targetMethod: (NSTimer*) theTimer { 
    NSLog(@"timer?"); 
    exit(0); 

} 
+0

あなたのコードは、そのタイマーを想定し、合理的に見える私は推測する特性を保持するのですか?次に行うべきことは、[timer scheduledTimer ...]呼び出しの前後にNSLogメッセージを入れ、targetMethodに別のNSLogを入れることです: – MahatmaManic

+0

もう1つのことは、ヘッダーにIBActionを宣言するときあなたがそれを.m - (IBAction)タイマーで宣言するのと同じように宣言しているということです:(id)送信者であり、xibに正しく配線されています。 「認識できないセレクタ」のようなクラッシュがあり、ログメッセージが表示されない場合は、正しく接続していません。 – MahatmaManic

+2

Appleは意図的にシャットダウンするアプリを承認しません。これを行うつもりなら、App Storeが出版の道であるとは思わないでください。 – Tommy

答えて

1

あなたが適切にあなたのタイマーの参照を定義する必要があります。

NSTimer *timer = [NSTimer scheduledTimerWithInterval: 10.0 target:self selector:@selector(targetMethod:) userInfo:nil repeats: YES]; 
+0

@jsumnersは、タイマー宣言の冒頭に 'NSTimer *'がありません。型を指定する必要があり、ポインタであることを指定します。 –

+0

返信いただきありがとうございます。私はおそらく私はタイマーをそのようなヘッダファイルで宣言して追加する必要があります:NSTimer * timer;すべての提案がコード内に存在することを確認するためにコードをチェックします。 – redned

+0

解決済み!私はNSTimer * timer = [NSTimer scheduledTimerWithInterval:10.0ターゲット:セルフセレクタ:@selector(targetMethod :) userInfo:nil repeats:YES]; NSTimer * timer = [NSTimer scheduledTimerWithTimeInterval:10.0ターゲット:セルフセレクタ:@selector(targetMethod :) userInfo:nil repeats:YES];私は間隔の前に時間を捨てました。返信の皆様に感謝します。 – redned

関連する問題