gpt4 book ai didi

iphone - NSError 奇怪的问题 - 应用程序在尝试访问 NSError 的属性时崩溃

转载 作者:行者123 更新时间:2023-11-28 18:01:30 34 4
gpt4 key购买 nike

在下面的代码中NSError实例化(match是GameCenter的GKMatch):

    ...
NSString * deviceID = appDelegate.deviceID;
MessageWithDeviceID message;
message.message.messageType = kMessageTypeDeviceID;
const char* const deviceIDAsUTF8 = deviceID.UTF8String;
for (size_t idx=0;idx<32;idx++)
message.deviceID[idx] = deviceIDAsUTF8[idx];

NSData *data = [NSData dataWithBytes:&message length:sizeof(message)];
NSError * error;
[match sendDataToAllPlayers:data withDataMode:GKMatchSendDataReliable error:&error];

data = nil;
if (error)
NSLog(@"An error is occured: %@",error);
...

但应用程序在最后显示的行崩溃,EXC_BAD_ACCESSSIGABRT -[NSCFString userInfo (or domain, localizedDescription, code etc)] unrecognized selector sent to instance 0x...。所以我可以看到错误不是零,它是实例化对象,但我无法从中获取任何信息。我试图获得以下内容:

[error localizedDescription];
[error domain];
[error code];
[error description];
etc.

但无论我尝试获取哪个信息,应用程序仍然会在 NSLog 行崩溃。我知道这种方法不对,我需要在发送数据的行中使用 BOOL 变量,但这不是问题所在。问题是 NSError 对象出了什么问题?我可以在调试器中看到错误字段(那些可扩展信息),例如:

NSObject       NSObject
void * _reserved
NSInteger _code 875902004 Summary
NSString * _domain
NSDictionary * _userInfo

所以看起来错误对象确实拥有所有信息,但它无法访问...为什么会这样? NSError 是否以某种方式未完全/完全实例化或其他什么?

最佳答案

尝试将错误指针初始化为 nil

NSError * error = nil;

你会崩溃,因为没有错误,你的指针包含一个随机地址。

关于iphone - NSError 奇怪的问题 - 应用程序在尝试访问 NSError 的属性时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16559173/

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