当用户的朋友挑战他的高分并且用户击败它时,它会回复一个新的挑战(来自苹果,未编程)。另一个用户收到了挑战,但发件人的游戏立即崩溃,此行出现错误访问 if ([_delegate respondsToSelector:@selector(onScoresSubmitted:)]) 来自本教程http://www.raywenderlich.com/23189/whats- ios-6 中的新游戏中心
有任何想法吗?
当用户的朋友挑战他的高分并且用户击败它时,它会回复一个新的挑战(来自苹果,未编程)。另一个用户收到了挑战,但发件人的游戏立即崩溃,此行出现错误访问 if ([_delegate respondsToSelector:@selector(onScoresSubmitted:)]) 来自本教程http://www.raywenderlich.com/23189/whats- ios-6 中的新游戏中心
有任何想法吗?
您确定此时您的 _delegate 不是随机垃圾值吗?
if ([_delegate respondsToSelector:@selector(onScoresSubmitted:)])
确保使用 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% 确定它与释放指针问题有关;