swift - 如何在 swift 中向 NSArray 添加 nil 值?

标签 swift swift4

NSArray.init(数组: [任意])

NSArray 有一个初始函数,其参数为 [Any]。但不是[Any?],那么,如何向这个数组添加一个nil值呢?

最佳答案

NSArray/NSMutableArray 不允许您在数组中存储 nil 值。这就是为什么 Swift API 都不允许可选值的原因。

如果你确实需要一些零的东西,请使用 NSNull() 虽然我不是 100% 确定它如何与 Core Data 一起使用。

Swift 实际上会为你做到这一点。如果您传递可选值的 Swift 数组,任何 nil 值都会转换为 NSNull。示例:

var array = [Int?]()
array.append(4)
array.append(nil)
let nsa = array as NSArray
print(nsa) // (4, "<null>")
print(type(of: nsa[1])) // NSNull

请注意,使用 let nsa = NSArray(array: array) 代替 let nsa = array as NSArray 在 Swift 4.0 下没有警告,但从 Swift 开始会发出警告4.1.

关于swift - 如何在 swift 中向 NSArray 添加 nil 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50301767/

相关文章:

swift - 如何快速显示用户的高度?

ios - 没有互联网时 Swift Firebase ondisconnect Action

ios - 在 iOS 中,如何通过点击 Alert 弹出窗口中的 INSIDE 来关闭 Alert Controller?

swift - 将 swift 泛型类型与协议(protocol)结合使用

swift - 在 Swift 中迭代并将图像和标题从数组 (image_url) 加载到 ViewController 中的正确方法

ios - 如何获取索引(:) to return multiple indices?

ios - UIView 上圆形层的 Swift 掩码

arrays - 为什么在 Swift 中创建数组时出现错误?

iOS Swift4 如何协调 T.Type 和类型(:) to pass dynamic class type as function parameter?

ios - swift 中的多个枚举值