我有一个代码对对象MyDate的数组进行排序,该对象既然是Any,并且它的值是从ObjectMapper设置的,因为它的值是从json中获取的,像这样:
...
"since": "1536642141",
...
这些代码在Xcode 9.4.1中运行良好,但在Xcode 10中崩溃。
tempDates = tempDates.sorted(by: { Int(String.init(describing: $0.since))! < Int(String.init(describing: $1.since))! })
崩溃消息是“致命错误:在展开可选值时意外发现nil” 这是Xcode的错误吗?我该如何解决?
答案 0 :(得分:-1)
Int用随机字符串初始化时返回nil的原因可能有三个。
当字符串的数字长度大于32位/ 64位时
let a = Int(String.init(describing: "153664214187878888878878"))
当字符串不包含任何数字时
let a = Int(String.init(describing: "heyyowhynodigits"))
当字符串包含其他带有数字的字符时
let a = Int(String.init(describing: "heyyowhynodigits"))
这些原因对于XCode 9.4.1和XCode 10均应有效。
但是,有可能在XCode 9.4.1上,在64位长度的设备/仿真器上测试了64位长度的字符串。
但是,在XCode 10的情况下,测试是在32位设备/模拟器上进行的,因此情况1(上述)有效。