私は XCode 4.6 で作業しており、アプリの再起動時に関数を実行する iOS でローカル通知機能を構築しようとしています。基本的に、一部のラベルのテキストを変更し、アプリの再起動時にサウンドを追加したいと考えています。 . 私は正しい方向に進んでいると思っていましたが、ローカル通知を介してアプリに再入力すると、コードの一部しか機能しません。
最初に、この関数を AppDelegate に追加しました。
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{
NSLog(@"test1"); //this traces successfully
myAppViewController * controller = [myAppViewController alloc];
[controller doSomething]; //calling a function in my myAppViewController.m
}
私はそれを理解したと思っていましたが、今では myAppViewController.m の関数で NSLog だけが機能します:
-(void)doSomething{
NSLog(@"do something"); //traces successfully
self.notificationTime.text=@"something else"; //nothing happens here, it works in other functions but not here
[self doSomethingElse]; //calling another function from this function for further testing
}
次の関数が呼び出されます....
-(void)doSomethingElse{
NSLog(@"do something else"); //this works
//this whole thing doesn't work -- no sound --
NSURL* url = [[NSBundle mainBundle] URLForResource:@"cash" withExtension:@"mp3"];
NSAssert(url, @"URL is valid.");
self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
[self.player prepareToPlay];
[self.player play];
//this doesn't work again
self.notificationTime.text=@"something else";
}
ここで一般的なアドバイスをいただければ幸いです。誰かが問題を解決するためのまったく別の方法を知っていれば、それも素晴らしいでしょう!