无法将具有 nil 值的字典添加到 swift 中的数组

Can't add dictionaries with nil values to array in swift

我正在尝试像这里一样创建字典:

var dicItem = ["dataOfChange": 21-01-2012, "item": nil, "orderer": nil, "song": 1, "itemId": 3447, "petro": nil]

我在 loop 中创建 dicItem 并在创建 dicItem 时循环我想将它添加到数组中: array.append(serStatdicItemusJSON)
这是我的数组:

var data = [[String:AnyObject]]()

但是我在尝试添加到数组时遇到以下错误:

fatal error: attempt to bridge an implicitly unwrapped optional containing nil

我认为这是因为 nil 的原因,但不知道如何解决。

NSNull class 定义了一个单例对象,用于在禁止 nil 作为值的情况下(通常在数组或字典等集合对象中)表示空值。"

Apple Developer

字典中的项目必须是 objectnil 不是对象,这就是您收到错误的原因。

有几个解决方案:

  1. 使用 if 语句检查值是否为 nil。只有当值不是 nil.

  2. 时才将 key/value 对添加到字典中
  3. 使用 NSNull,这是一个对象,而不是 nil

  4. 写一个函数把nil转换成empty string (""),每次你想往字典里加东西的时候调用这个函数。

您应该将类​​型设置为 [String:AnyObject?]

var dicItem: [String:AnyObject?] = ["dataOfChange": 21-01-2012, "item": nil, "orderer": nil, "song": 1, "itemId": 3447, "petro": nil]