带有 sigabrt 错误的 NSexception

Posted

技术标签:

【中文标题】带有 sigabrt 错误的 NSexception【英文标题】:NSexception with sigbart error 【发布时间】:2016-10-18 11:13:56 【问题描述】:

我正在尝试从 json 网络服务中获取结果。对于字符串值,它工作正常。当我尝试获取整数值时,它会抛出带有 sigbart 错误的 nsexeption。

我的 json 结果是这样的。

["CaseId":81,"ApplicantName":"test","ApplicantContactNo":"teas","PropertyAddress":"ewae","BankName":"Bank of India","ReportDispatcher":null,"PropertyType":"test","AssignedAt":"2016-10-07T13:01:20","Status":"Open","PropertyId":62,"EmployeeName":null,"StatusId":1

当我尝试捕获 CaseId 和 AssignedAt 时,它会抛出错误。

这是我的代码。

NSString * caseid = @"CaseId";
NSString * assigned = @"AssignedAt";
for (NSDictionary *dataDict in jsonObjects) 
    NSString *caseid1 = [dataDict objectForKey:@"CaseId"];
    NSString *assigned1 = [dataDict objectForKey:@"AssignedAt"];
    dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                  caseid1,caseid,assigned1,assigned, nil];                      
    [myObject addObject:dictionary];

cell.caseid.text=[tmpDict objectForKey:@"CaseId"];
cell.days.text=[tmpDict objectForKey:@"AssignedAt"];

任何帮助将不胜感激。

【问题讨论】:

你应该给出错误。但可能猜测是有一个“[NSNumber length] unrecognized selector sent to instance”。 NSJSONSerializationNSData 转换为NSArrayNSDictionaryNSStringNSNumber。您可以使用[[tmpDict objectForKey:@"CaseId"] class] 进行检查。所以cell.caseid.text=[[tmpDict objectForKey:@"CaseId"] stringValue]; 应该可以工作。 【参考方案1】:

这应该适合你:

NSString *caseIdValue = [NSString stringWithFormat:@"%@",[dataDict objectForKey:@"CaseId"]];
NSString *assignedAtValue = [NSString stringWithFormat:@"%@",[dataDict objectForKey:@"AssignedAt"]];

【讨论】:

它工作正常。还有一个帮助?我有这样的价值“2016-10-07T13:01:20”。我想转换为从当前日期起 2 天或 3 天的日期。有什么帮助吗? @R.AarthikaRajendran 这是另一个问题。您必须使用 NSDateFormatter 将该字符串日期转换为 NSDate (关于此的问题已经存在),然后将其转换为“2天前”等(也有关于它的问题) .

以上是关于带有 sigabrt 错误的 NSexception的主要内容,如果未能解决你的问题,请参考以下文章

带有核心数据未捕获的 NSExeption 类型异常的 SIGABRT

获取错误(断点)“线程 1:信号 SIGABRT”

pycharm 随机发生错误:进程以退出代码 134 完成(被信号 6 中断:SIGABRT)

CustomCell 为空或导致 SIGABRT 错误 [W/Code]

为 iOS 应用程序创建了一个下一步按钮...单击时出现 SIGABRT 错误

相机崩溃:带有 JNI 代码的致命信号 6 (SIGABRT)