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

时间:2018-05-12 00:20:07

标签: swift swift4

NSArray.init(array:[Any])

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

1 个答案:

答案 0 :(得分:4)

NSArray / NSMutableArray不允许您在数组中存储nil个值。这就是没有Swift API允许可选值的原因。

如果您真的需要nil的东西,请使用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

请注意,在Swift 4.0下使用let nsa = NSArray(array: array)代替let nsa = array as NSArray时没有出现任何警告,但在Swift 4.1中发出警告。