我正在使用此代码创建一个新的颜色数组.一切都很好.
但是我不想强制解包,$0.color!因为有时候应用程序崩溃时值为零.
我如何将其作为可选项?如果我只是删除!我收到一个错误,要求我打开它.
let newArray = oldDict.map{ UIColor(hexString: $0.color!)}
Run Code Online (Sandbox Code Playgroud)
您应该使用compactMap而不是map,因为compactMap不返回nil和闭包中的元素只需使用guard let语句展开颜色
let newArray = oldDict.compactMap {
guard let color = $0.color else {
return nil
}
return UIColor(hexString: color)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
283 次 |
| 最近记录: |