2014-09-22 4 views
0

그냥 내 장치에 iOS8의 설치 지금이 오류가 발생하고있다 :iOS8의 GKLocalPlayerInternal 인식 할 수없는 선택기

-[GKLocalPlayerInternal name]: unrecognized selector sent to instance 0x1b6e3f80 

내가 설치 iOS7에 두 개의 다른 장치에이 오류가 표시되지 않습니다.

// after checking that game center is available and authentication handler has not already been set, set the authentication handlers 
[localPlayer setAuthenticateHandler:(^(UIViewController* viewController, NSError *error) { 

    GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer]; 

    if (!error && viewController) 
    { 
     [self showAuthenticationDialogWhenReasonable: viewController fromBaseViewController:baseController]; 
    } 
    else if (localPlayer.isAuthenticated) 
    { 
     [self authenticatedPlayerandShowPopUpIfUnable:showPopUp]; 
    } 
    else 
    { 
     [self disableGameCenterandShowPopUpIfUnable:showPopUp]; 
    } 
})]; 
: -> 게임 센터 -> "샌드 박스"를 확인

나는 다음이 코드를 주석하여 오류를 방지 할 수 있습니다 iOS8의 내 장치에서 이미 게임 센터 샌드 박스는 설정으로 이동하여 사용할 수 있는지 확인했습니다 설치 이 문제에 대한

  • thread #1: tid = 0x4011c, 0x3775ec64 libobjc.A.dylib`objc_exception_throw, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
frame #0: 0x3775ec64 libobjc.A.dylib`objc_exception_throw 
frame #1: 0x2a0b6188 CoreFoundation`-[NSObject(NSObject) doesNotRecognizeSelector:] + 188 
frame #2: 0x2a0b40a6 CoreFoundation`___forwarding___ + 714 
frame #3: 0x29fe6208 CoreFoundation`_CF_forwarding_prep_0 + 24 
frame #4: 0x2d3ff688 SpriteKit`-[SKNode isEqual:] + 164 
frame #5: 0x2ad039fe Foundation`+[NSObject(NSDelayedPerforming) cancelPreviousPerformRequestsWithTarget:] + 358 
frame #6: 0x30d9b872 GameCenterFoundation`-[GKPlayer postChangeNotification] + 38 
frame #7: 0x30daed20 GameCenterFoundation`__52-[GKDaemonProxy setLocalPlayer:authenticated:reply:]_block_invoke + 848 
frame #8: 0x0062faea libdispatch.dylib`_dispatch_call_block_and_release + 10 
frame #9: 0x0062fad6 libdispatch.dylib`_dispatch_client_callout + 22 
frame #10: 0x006334f6 libdispatch.dylib`_dispatch_main_queue_callback_4CF + 810 
frame #11: 0x2a076be8 CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8 
frame #12: 0x2a0752e8 CoreFoundation`__CFRunLoopRun + 1512 
frame #13: 0x29fc3620 CoreFoundation`CFRunLoopRunSpecific + 476 
frame #14: 0x29fc3432 CoreFoundation`CFRunLoopRunInMode + 106 
frame #15: 0x313710a8 GraphicsServices`GSEventRunModal + 136 
frame #16: 0x2d5ad808 UIKit`UIApplicationMain + 1440 
frame #17: 0x0019ddd0 ReconInForce`main(argc=1, argv=0x003c4a5c) + 116 at main.m:16 

어떤 생각 :

스택 추적이 보여?

미리 감사드립니다.

답변

0

솔루션 찾았 교체

-(void) setAnnimationsPlaying:(BOOL)annimationsPlaying{ 

    ...some other code... 

    _annimationsPlaying = annimationsPlaying; 

    if (annimationsPlaying) 
     [self performSelector:@selector(xyz) withObject:nil afterDelay:0.1]; 

} 

-(void) xyz{ 

    if (!self.annimationsPlaying) 
     return; 

    ...some other code... 

    [self performSelector:@selector(xyz) withObject:nil afterDelay:6.0]; 

} 

: 문제가 아닌 것 같아이 ... 너무 많은 게임 센터 로그인에 관련이 나는 형태했다 코드의 비트를했다

이 형식의 코드로 내 문제가 해결되었습니다.

-(void) setAnnimationsPlaying:(BOOL)annimationsPlaying{ 

    ...some other code... 

    _annimationsPlaying = annimationsPlaying; 

    if (self.annimationsPlaying) { 
     [self xyz]; 
     self.timer = [NSTimer scheduledTimerWithTimeInterval:6.0f target:self selector:@selector(xyz) userInfo:nil repeats:YES]; 
    }else{ 
     [self.timer invalidate]; 
    } 

} 

-(void) xyz{ 

    if (!self.annimationsPlaying) 
     return; 

    ...some other code... 

} 

희망이 있습니다.

관련 문제