暂停iPhone游戏中断Xcode中断

时间:2014-09-08 04:12:34

标签: ios objective-c iphone xcode

我正试图让它在电池警告弹出或有来电时暂停我的游戏。我知道这个中断之一的方法是“applicationWillResignActive:”,但这是我的问题。我当前的Pause方法是在我的自定义Game类中,我不知道如何从应用程序委托中调用它,或者我还应该做些什么。谢谢!

2 个答案:

答案 0 :(得分:2)

使用通知中心向您的代码的其他部分发送消息。收到applicationWillResignActive:电话后,您会向通知中心发送消息:

[[NSNotificationCenter defaultCenter] postNotificationName:@"pauseGame" object:self];

然后,您将游戏代码设置为侦听这些通知(初始化游戏时):

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(receivePauseNotification:)
                                             name:@"pauseGame"
                                           object:nil];

您将从此处调用的方法只需要暂停游戏,但是应该根据您自己的代码执行此操作:

- (void) receivePauseNotification:(NSNotification *) notification
{
    if (![[notification name] isEqualToString:@"pauseGame"])
    {
        NSLog (@"Error; unknown notification received");
        return;
    }

    // pause the game here.
}

答案 1 :(得分:1)

使用NSNotificationCenter设置通知。调用applicationWillResignActive:时会触发通知。然后,您的自定义游戏类应设置为通知的观察者,并在通知进入时暂停游戏。以下是使用NSNotificationCenter的信息:

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/nsnotificationcenter_Class/Reference/Reference.html

这是一个堆栈溢出问题,也显示了如何使用它: How to use NSNotification

还有许多在线教程解释了如何使用它。