NSArray
/ NSMutableArray
не позволяют вам хранить nil
значения в массиве. Вот почему ни один из API-интерфейсов Swift не допускает дополнительных значений.
Если вам действительно нужно что-то для nil, используйте NSNull()
, хотя я не уверен на 100%, как это будет работать с Core Data.
И Свифт фактически делает это для вас. Если вы передаете массив опций 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.