2014-09-08 2 views
2

배터리 경고가 나타나거나 전화가 오면 내 게임이 일시 중지되도록하려고합니다. 나는 "applicationWillResignActive :"메소드가 이러한 인터럽트 중 하나에 호출되었음을 알고 있지만 여기에 내 문제가있다. 내 현재 Pause 메서드는 내 사용자 정의 Game 클래스에 있고 응용 프로그램 대리자에서 호출하는 방법이나 내가해야하는 다른 것이 있는지 확실하지 않습니다. 감사!iPhone 게임을 Xcode에서 중단시키기

답변

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. 
} 
+2

당신은 8 초 동안 저를 때려 눕 힙니다. 코드 샘플 포함에 대한 귀하의 의견을 기다립니다. :-) –

+1

@WorkingDev 나는 타이핑을 빨리하고 있었다! (그리고 나는 그 후에 당신의 대답을 그렇게 빨리 보게되어 놀랐다.) –

+2

어디서나'@ pauseGame'을 사용하는 대신에, 적어도 하나의 헤더 파일에'# define '을 정의하거나, 더 나은'extern NSString * kMyPauseGameNotificationName ;'글로벌 ... – bbum

1

notificatio 설정 n은 NSNotificationCenter을 사용합니다. applicationWillResignActive:을 호출하면 알림이 시작됩니다. 귀하의 사용자 지정 게임 클래스는 알림의 관찰자로 설정하고 알림이 들어 오면 게임을 일시 정지해야 다음 NSNotificationCenter 사용에 대한 정보는 다음과 같습니다.

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

는 방법을 보여줍니다 스택 오버플로 질문한다 그것을 사용하는 것 : How to use NSNotification

그것을 사용하는 방법을 설명하는 온라인 많은 많은 튜토리얼이 있습니다.

관련 문제