带有nil

时间:2015-10-04 05:22:49

标签: swift dictionary

我怎样才能在嵌套Swift词典中找到nil?

var d: [String: AnyObject?] = [
    "name": "Rodrigo",
    "number": 1,
    "nil": nil,
    "more": [
        "a": 1,
        "b": 2,
        "nil": nil
    ]
]

第二个nil(在"more"内)给出了错误Type of expression is ambiguous without more context

1 个答案:

答案 0 :(得分:3)

您遇到的问题是Swift Dictionary是一种值类型,因此不会自动符合AnyObject。编译器会尝试在此处为您提供帮助,并将其桥接到NSDictionary,其中 AnyObject,但遗憾的是NSDictionary无法保留nil 1}}值,所以你运气不好。

在我看来,你有两个选择:

  1. 转到标准的Objective-C路线,并在嵌套数组中使用NSNull()代替nil
  2. 重新考虑数据的结构。也许使用字符串键而不是嵌套字典,您可以构建一个struct PersonData来保存键入属性(包括选项)中所需的所有信息。您可能会发现这种方法比这种方法更好。
相关问题