사용자가 Game Center에 로그인하면 이미 앱이 원활하게 실행되지만 사용자가 로그인하지 않은 경우 시작시 앱이 이미 다운됩니다. '응용 프로그램 모달 뷰 컨트롤러를 제공하기 위해 노력 : 종료 응용 프로그램으로 인해 캐치되지 않는 예외'NSInvalidArgumentException ', 이유에 : -Expected 동작은 사용자가 이미사용자가 이미 로그인하지 않은 경우 게임 센터 인증에 충돌이 발생합니다.
이 로그인하지 않은 경우 게임 센터에 로그인하라는 메시지가 오류 메시지입니다 것입니다 그 자체. 프리젠 테이션 컨트롤러가 있습니다. ' 우선 투사 호출 스택 : (0x30496ecb 0x3ac31ce7 0x32db01db 0x3049a414 0x303e4967 0x32f8e71b 0x310b906d 0x3049a414 0x303e4967 0x3b11ad53 0x3b11ad3f 0x3b11d6c3 0x30461641 0x3045ff0d 0x303ca729 0x303ca50b 0x353396d3 0x32d2b871 0x10d05d 0x3b12fab7) 의 libC++ abi.dylib : NSException
형 캐치되지 제외 종료이 사용자를 인증하는 코드입니다.
- (void)authenticateLocalUser {
if (!gameCenterAvailable) return;
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
if (SYSTEM_VERSION_LESS_THAN(@"6.0")) {
NSLog(@"...");
} else {
// ios 6.0 and above
[localPlayer setAuthenticateHandler:(^(UIViewController* viewcontroller, NSError *error) {
if (!error && viewcontroller) {
[viewcontroller presentViewController:viewcontroller animated:YES completion:nil];
}
else {
[self checkLocalPlayer];
}
})];
}
}
EDIT- 세부 정보입니다.
컴파일되지 않습니다. 빨간색 오류 msg : GameCenterFiles의 표시되지 않는 @interface가 selector 'presentViewController : animated : completion :'을 선언합니다. – user3695947
presentViewController : 메시지를 현재보기 컨트롤러로 보내야합니다. 예를 들어 내비게이션 컨트롤러를 사용중인 경우; UIViewController * currentViewController = self.navigationController.visibleViewController; [currentViewController presentViewController : viewcontroller animated : 예 완료 : 없음]; – EDUsta
감사합니다. 힌트가 도움이되었습니다. 나는 [[[UIApplication sharedApplication] keyWindow]를 사용했다. .rootViewController presentViewController : viewcontroller animated : 예 완료 : 없음]; – user3695947