NSArray.init(array:[Any])
NSArray有一个初始函数,其参数为[Any]。但不是[Any?],那么,如何在这个数组中添加一个nil值?
答案 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中发出警告。