gpt4 book ai didi

当我按下主页按钮然后恢复它时,ios7 应用程序崩溃

转载 作者:行者123 更新时间:2023-11-28 22:01:55 27 4
gpt4 key购买 nike

这是我收到的错误消息: 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSCFString authenticationChanged]:无法识别的选择器发送到实例 0x176769a0”首先抛出调用栈:(0x30496ecb 0x3ac31ce7 0x3049a7f7 0x304990f7 0x303e8058 0x30458f01 0x303ccd69 0x30db8cc5 0x3102f43b 0x3b11ad53 0x3b11ad3f 0x3b11d6 c3 0x30461641 0x3045ff0d 0x303ca729 0x303ca50b 0x353396d3 0x32d2b871 0xb8591 0x3b12fab7)libc++abi.dylib:以 NSException 类型的未捕获异常终止

我将游戏中心集成到应用程序中,这是可能导致崩溃的代码:

- (id)init {
if ((self = [super init]))
{
gameCenterAvailable = [self isGameCenterAvailable];
if (gameCenterAvailable) {
NSNotificationCenter *nc =
[NSNotificationCenter defaultCenter];
[nc addObserver:self
selector:@selector(authenticationChanged)
name:GKPlayerAuthenticationDidChangeNotificationName
object:nil];
}
}

return self;
}

- (void)authenticationChanged {
if ([GKLocalPlayer localPlayer].isAuthenticated && !userAuthenticated) {
NSLog(@"Authentication changed: player authenticated.");
userAuthenticated = TRUE;

} else if (![GKLocalPlayer localPlayer].isAuthenticated && userAuthenticated) {
NSLog(@"Authentication changed: player not authenticated");
userAuthenticated = FALSE;

}

最佳答案

导致此问题的最可能原因是您从未在需要时移除观察者。

将以下内容添加到您的类中:

- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}

这确保旧对象不再注册接收通知。

附带说明一下,不要重复代码。您的 authenticationChanged 方法会更好:

- (void)authenticationChanged {
if ([GKLocalPlayer localPlayer].isAuthenticated) {
userAuthenticated = !userAuthenticated;
NSLog(@"Authentication changed: player %@authenticated.", userAuthenticated ? @"" : @"not ");
}
}

并确保对 BOOL 变量使用 YESNO

关于当我按下主页按钮然后恢复它时,ios7 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24897982/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com