





















@chipmuck 有问题的,swift 主打的是静态类型安全,使用 NS 的集合,遍历的时候,元素类型全是 Any ,需要使用的时候就得做强制解包,而 app 崩溃最多的原因就是强制解包失败引起的崩溃。
比如:let arr: NSArray = [1,2,3,4]
然后使用 filter 进行筛选大于 2 的元素
arr.filter { el in
el > 2
}
这个时候是有错误提示的,Cannot convert value of type 'NSArray.Element' (aka 'Any') to expected argument type 'Int'
必须这样写才可以
arr.filter { el in
el as! Int > 3
}
这还是简单的,我在公司的项目里面看到的比这恶心多了。
比如这样的:
var dict = NSMutableDictionary()
dict = NSMutableDictionary(dictionary: te as! NSDictionary)
dict.setValue("l((te as! NSDictionary) . object(forKey: "max_ limit")!)", forKey: "to_ _max_ limit" )
te 是个 NSArray 中的一个元素
如果 API 返回了一个错误的类型,app 就会崩溃。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。