objective-c – Gamecenter身份验证问题

前端之家收集整理的这篇文章主要介绍了objective-c – Gamecenter身份验证问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我更新了我为游戏中心验证玩家的方式,我在启动时仍然遇到了崩溃.

这是我认证的新方式:

@H_301_4@- (void) authenticateLocalPlayer { GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer]; localPlayer.authenticateHandler = ^(UIViewController *viewController,NSError *error){ if (viewController != nil) { NSLog (@"user not logged in to GC"); } else if ([GKLocalPlayer localPlayer].isAuthenticated) { NSLog(@"gamecenter authentication process succeeded"); } else { NSLog(@"user not authenicated"); } }; }

这是崩溃时显示内容

@H_301_4@2014-11-12 16:20:43.295 ZombieConga[7492:881764] -[GKLocalPlayerInternal name]: unrecognized selector sent to instance 0x7974b8c0 2014-11-12 16:20:43.298 ZombieConga[7492:881764] *** Terminating app due to uncaught exception 'NSInvalidArgumentException',reason: '-[GKLocalPlayerInternal name]: unrecognized selector sent to instance 0x7974b8c0' *** First throw call stack: ( 0 CoreFoundation 0x01ef6946 __exceptionPreprocess + 182 1 libobjc.A.dylib 0x01b8ea97 objc_exception_throw + 44 2 CoreFoundation 0x01efe5c5 -[NSObject(NSObject) doesNotRecognizeSelector:] + 277 3 CoreFoundation 0x01e473e7 ___forwarding___ + 1047 4 CoreFoundation 0x01e46fae _CF_forwarding_prep_0 + 14 5 SpriteKit 0x01a20f82 -[SKNode isEqual:] + 124 6 Foundation 0x015f5612 +[NSObject(NSDelayedPerforming) cancelPrevIoUsPerformRequestsWithTarget:] + 345 7 GameCenterFoundation 0x0b1ef11e -[GKPlayer postChangeNotification] + 45 8 GameCenterFoundation 0x0b209aa8 __52-[GKDaemonProxy setLocalPlayer:authenticated:reply:]_block_invoke + 922 9 libdispatch.dylib 0x0237a30a _dispatch_call_block_and_release + 15 10 libdispatch.dylib 0x0239ae2f _dispatch_client_callout + 14 11 libdispatch.dylib 0x0238190e _dispatch_main_queue_callback_4CF + 606 12 CoreFoundation 0x01e5095e __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 14 13 CoreFoundation 0x01e0f760 __CFRunLoopRun + 2256 14 CoreFoundation 0x01e0ebcb CFRunLoopRunSpecific + 443 15 CoreFoundation 0x01e0e9fb CFRunLoopRunInMode + 123 16 GraphicsServices 0x036dc24f GSEventRunModal + 192 17 GraphicsServices 0x036dc08c GSEventRun + 104 18 UIKit 0x0019f8b6 UIApplicationMain + 1526 19 ZombieConga 0x000f898d main + 141 20 libdyld.dylib 0x023c6ac9 start + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException

为什么会崩溃?

解决方法

我的游戏解决方案很奇怪(我完全不了解它).通过将调用移动到[self authorizeLocalPlayer]直到生命周期的后期,例如当我第一次初始化SKScene时,而不是早期 – (void)viewDidLoad时,它会阻止此崩溃.

我认为这与线程问题有关,但我无法确定.我对代码所做的一些更改,似乎无关,与多线程有关,导致它再次中断(我不得不改变对performSelector的调用:withObject:afterDelay:to [NSTimer scheduledTimerWith …].

基本上,这是一个非常难以追查的问题,需要一些麻烦.对不起,我不能更具体:(

猜你在找的C&C++相关文章