2011-04-20 5 views
0

저는 C++ 및 100 % OpenGL iPhone 게임을 코딩하고 있습니다.
나는 gamecenter를 추가해야합니다. UIView를 보여주기 위해 나는 hackish를해야했습니다.iOS : gamecenter 업적보기를 열 때 크래시가 발생합니다.

void sb_socialShowAchievementsView(){ 
    SocialDelegate* del = [[[SocialDelegate alloc] init] autorelease]; 
    GKAchievementViewController *achievements = [[GKAchievementViewController alloc] init]; 
    if (achievements != nil) { 
     achievements.achievementDelegate = del; 
     HelperViewController* hvc = [[[HelperViewController alloc] init] autorelease]; 
     [globalGLView addSubview:hvc.view]; 
     [hvc presentModalViewController: achievements animated: YES]; 
    } 
    [achievements release]; 
} 

는 SocialDelegate는 프로토콜을 GKAchievementViewControllerDelegateGKLeaderboardViewControllerDelegate을 구현합니다.

globalGLView은 내 EAGLView 인스턴스입니다.

HelperViewController은 단지 UIViewController 서브 클래스입니다. 내가 sb_socialShowAchievementsView() 전화 앱이 다음 호출 스택 및 메시지와 함께 SIGABRT를받을 때

문제는 :

*** Assertion failure in -[UIButtonLabel setTextColor:], /SourceCache/UIKit_Sim/UIKit-1262.60.3/UILabel.m:312 
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: color' 


#0 0x98ece156 in __kill 
#1 0x98ece148 in kill$UNIX2003 
#2 0x98f60899 in raise 
#3 0x98f769b8 in abort 
#4 0x961a2fda in __gnu_cxx::__verbose_terminate_handler 
#5 0x03022333 in _objc_terminate 
#6 0x961a117a in __cxxabiv1::__terminate 
#7 0x961a11ba in std::terminate 
#8 0x961a12b8 in __cxa_throw 
#9 0x03022481 in objc_exception_throw 
#10 0x02e8b238 in +[NSException raise:format:arguments:] 
#11 0x022c6e37 in -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] 
#12 0x0052260f in -[UILabel setTextColor:] 
#13 0x005ec3d3 in -[UIButton layoutSubviews] 
#14 0x002a0481 in -[CALayer layoutSublayers] 
#15 0x002a01b1 in CALayerLayoutIfNeeded 
#16 0x004bd976 in __-[UINavigationController _positionNavigationBarHidden:edge:]_block_invoke_1 
#17 0x0043698f in +[UIView(Animation) _performWithoutAnimation:] 
#18 0x004c1e26 in -[UINavigationController _positionNavigationBarHidden:edge:] 
#19 0x004bd9ae in -[UINavigationController _positionNavigationBarHidden:] 
#20 0x004bc0c3 in -[UINavigationController _updateBarsForCurrentInterfaceOrientation] 
#21 0x004b99b1 in -[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:] 
#22 0x004c0bfd in -[UINavigationController viewDidMoveToWindow:shouldAppearOrDisappear:] 
#23 0x0044217f in -[UIView(Internal) _didMoveFromWindow:toWindow:] 
#24 0x00440d94 in -[UIView(Hierarchy) _postMovedFromSuperview:] 
#25 0x00439c30 in -[UIView(Internal) _addSubview:positioned:relativeTo:] 
#26 0x00437f83 in -[UIView(Hierarchy) addSubview:] 
#27 0x0049355b in -[UITransitionView transition:fromView:toView:] 
#28 0x006a3a16 in -[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:] 
#29 0x004b710d in -[UIViewController presentModalViewController:withTransition:] 
#30 0x0007ee96 in sb_socialShowAchievementsView at social-bindings-iphone.mm:184 

난 그냥 ... 내가 잘못 뭐하는 거지

+0

[globalGLView presentModalViewController : achievements animated : YES]; ? – ugiflezet

답변

0

I를 얻을 수 없다 똑같은 문제가 발생했습니다. 나는 몇 달 전에 쓴 모든 게임 센터 물건들을 관리하는 수업을 가지고 있으며, 잘 작동했다. 새 프로젝트로 가져 오려고 시도하고 GKAchievementViewController을 표시하는 표준 방법을 호출 한 다음 동일한 SIGABRT로 충돌했습니다. 그런 다음 플레이어 인증을 먼저 시도했는데 (일반적으로 업적 컨트롤러를 호출하기 전에 수행 했음) 문제가 해결되었습니다. 나는 그것이 GameKit 프레임 워크의 버그라고 생각합니다. 버그 신고자가 분명히 자신의 버그를 가지고 있기 때문에 나는 버그 보고서를 제출할 수 없었습니다 :)

관련 문제