在我的应用程序中处理appDelegate

时间:2012-07-17 17:32:58

标签: objective-c ios xcode cocoa-touch

我是iOS应用程序开发的新手,接近完成开发我的第一个应用程序。所以现在开始完成工作,其中包括我的应用程序在达到某些事件或状态时应该如何表现。我知道处理这些任务的代码会进入appDelegate.m,但我对我实际应该做的事情感到困惑。我的应用程序很简单,它会在按下按钮时触发带声音的动画,我希望一旦用户点击主页按钮就停止声音。我试过这个但是徒劳无功:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    finalViewController.AudioServicesDisposeSystemSoundID(soundID)
}

除了我的应用程序也崩溃,当我按两次主页按钮标志并尝试关闭我的应用程序。它在'signal SIGABRT'中给出了main.m错误。请帮忙。

3 个答案:

答案 0 :(得分:0)

请尝试在此处执行此操作:

- (void)applicationWillResignActive:(UIApplication *)application{}

或者

- (void)applicationWillTerminate:(UIApplication *)application{}

答案 1 :(得分:0)

你说你得到的错误如下:

  

使用未声明的标识符soundID

如果soundID是您的应用委托的属性,则应使用属性表示法访问它,例如:

self.soundID

或:

[self soundID]

“未声明的标识符”表示当您说soundID时编译器不知道您在说什么。支持该属性的实例变量可能具有不同的名称(如_soundID),因此soundID不引用ivar本身,它只是属性名称。

答案 2 :(得分:0)

使用指定的代码段停止声音&访问soundId中传递的AudioServicesPlaySystemSound(soundID)。您可以在soundId&中创建appDelegate变量。播放系统声音时保存soundId

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    AudioServicesDisposeSystemSoundID(soundID)
}