gpt4 book ai didi

ios - 间歇性崩溃:-setObjectForKey:对象不能为零(键:ref_id)

转载 作者:行者123 更新时间:2023-12-03 17:17:56 25 4
gpt4 key购买 nike

ref_id对象是JSON响应中的字符串/数字。
大部分时间都可以使用相同的代码。但有时它会崩溃(小于5%)。

      NSDictionary *udfDict = nil;
if (data) {
if ([data length] > 0) {
udfDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&serializationError];
}
}

if (udfDict) {
NSString *transactionreason;
NSString *refId;
if (![CustomUtilities isEmptyOrNull:udfDict[@"ref_id"]]) {

refId = udfDict[@"ref_id"];
[dict setObject:refId forKey:@"ref_id"];
}

值得关注的是:如果无法将其从数字向下转换为字符串,则代码应该一直中断,但事实并非如此,崩溃是间歇性的,只有5%的代码发生中断。

最佳答案

无需测试数据!= nil。但是请您自己和您的代码阅读者帮个忙,写if(data!= nil)而不是if(data)。那太野蛮了。 udfDict也一样。 length是一个属性,因此data.length不是[data length]。为什么要阅读可变容器?这是您复制但不理解的代码吗?

如果JSON数据是数组,您的代码将崩溃。

我们不知道isEmptyOrNull是做什么的。

为什么用setObject而不是dict [@“ref_id”] = ...?

而且我在这里看不到任何数字。实际问题是什么?

关于ios - 间歇性崩溃:-setObjectForKey:对象不能为零(键:ref_id),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35221581/

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