当用户的朋友挑战他的高分,并且用户击败它时,它会回复一个新的挑战(通过苹果,未编程)。另一个用户接受了挑战,但是如果([_delegate respondsToSelector:@selector(onScoresSubmitted :)])来自本教程http://www.raywenderlich.com/23189/whats-new-with-game-center-in-ios-6
,发送者的游戏会立即在此行上与Bad Access崩溃有什么想法吗?
答案 0 :(得分:0)
您确定此时_delegate不是随机垃圾值吗?
if ([_delegate respondsToSelector:@selector(onScoresSubmitted:)])
确保使用callBack的客户端(委托人)清理服务器委托,以便不再执行callBack。
这可以通过两种方式完成:
这是一个常见的错误,因为执行不好:
ADelegateClient* client = [ADelegateClient new];
[SingletonService service].delegate = (id<SingletonServiceDelegate>)client;
[client release];
// you must [SingletonService service].delegate = nil; Since
// [SingletonService service] cannot know the delegate is not pointing to something valid anymore
[[SingletonService service] makeStuffWillCauseCallBackToDelegate];
我没有读过Ray代码,如果你的问题与此类似,那么我会深入了解。但我99%肯定它与解除分配的指针问题有关;