Swift中如何将NSNumber数组转换为Int数组?
在Swift中从NSNumber获取Int值及数组转换方法
单个NSNumber转Int值
直接调用NSNumber的intValue属性即可,这是最直接的方式:
let nsNum: NSNumber = 456 let intVal = nsNum.intValue
也可以通过Int初始化器完成转换:
let intVal = Int(nsNum)
NSNumber数组转Int数组
利用Swift的map方法遍历数组,逐个转换元素:
假设已有NSNumber数组:
let array1: [NSNumber] = [10, 20, 30, 40]
一行代码即可完成转换:
let array2: [Int] = array1.map { $0.intValue }
也可以用初始化器的方式实现:
let array2: [Int] = array1.map { Int($0) }
注意事项
如果NSNumber存储的是浮点数(比如NSNumber(value: 5.9)),转换为Int时会自动截断小数部分,得到5,不会进行四舍五入。
内容的提问来源于stack exchange,提问作者Nav Brar
相关产品推荐
相关产品推荐

