ios - 在 Swift 中获取线程 1 信号 SIGABRT 崩溃错误
问题描述
我的应用程序崩溃了,它没有显示原因并且无法找到原因,崩溃发生在 for 循环中,循环运行并且它在 if 条件下第二次命中然后才崩溃。
这是我的代码。
func removeDuplicatesFromOrderAndOpenOrder() {
let storedArray = NSMutableArray()
for i in 0..<logOrderMutArray.count {
let orderFipsValue:NSNumber = (logOrderMutArray[i] as AnyObject).value(forKey: "FIPS") as? NSNumber ?? 0
let orderAccountNumberValue:String = (logOrderMutArray[i] as AnyObject).value(forKey: "AccountNumber") as? String ?? ""
if i == 0 {
continue
}
for var j in 0..<openOrderMutArray.count {
let FipsValue:NSNumber = (openOrderMutArray[j] as AnyObject).value(forKey: "FIPS") as? NSNumber ?? 0 //----- > Thread 1 signal SIGABRT shows in this line.
let AccountNumberValue:String = (openOrderMutArray[j] as AnyObject).value(forKey: "AccountNumber") as? String ?? ""
if orderFipsValue == FipsValue && orderAccountNumberValue == AccountNumberValue {
let dictMutableCopy = logOrderMutArray[i] as! NSDictionary
let editDict = NSMutableDictionary(dictionary: dictMutableCopy)
let newDict = openOrderMutArray[j] as! NSDictionary
let newMutableArray = NSMutableArray()
newMutableArray.add(newDict)
editDict.setValue(newMutableArray, forKey: "Inspectionlist")
logOrderMutArray.replaceObject(at: i, with: editDict)
openOrderMutArray.removeObject(at: j)
j -= 1
}
else {
storedArray.add(openOrderMutArray[j])
logOrderMutArray.add(openOrderMutArray[j])
}
}
}
}
解决方案
推荐阅读
- apache-spark - 在 delta Lake 中高效读取/转换分区数据
- java - 有没有办法从其类内部设置 Spring 的 @ResponseStatus `reason` 字段?
- design-patterns - 覆盖现有记录的值但保留未覆盖的值的模式称为什么?
- python - 如何在 python 中获取堡垒之夜的统计数据
- powershell - 根据文本文件中特定字符串之后出现的内容重命名一组 .txt 文件?
- python - 通过 Python 运行 Excel 宏?(新问题——保存)
- r - 如何从多边形叠加中创建栅格中的二项式字段?
- java - 如何使用反射来判断一个接口是否有默认方法?
- php - 输入网址时图片不显示
- excel - 无法解决错误“运行时错误'1004':对象'_Worksheet'的方法'范围'失败”