经过多次实验和多次崩溃,我还是想不通:
var dictionary:Dictionary<String, Any> = ["A": "Val A"]
var array = ["A", "B"]
dictionary["Ar"] = /* Xcode crash as soon as I type 'a'
and autocomplete brings up my 'array' */
我尝试了很多不同的方法,包括添加一个空数组(部分有效),但是只要我向该数组添加一些东西,Xcode 就会崩溃。
Apple 确实提到“Swift 数组特定于它们可以存储的值的种类。”,但这不应该冲突。类型“Any”仍然是一种类型。当然,编译器警告 是人们所期望的,但话又说回来,这 是测试版。
最佳答案
我觉得跟数组和字典的安全性有关系
此代码有效:
var dictionary:Dictionary<String, Array<String>> = ["A": []]
var array = ["A", "B"]
dictionary["Ar"] = array
但这会崩溃:
var dictionary:Dictionary<String, Any> = ["A": []]
var array: String[] = ["A", "B"]
dictionary["Ar"] = array
我可以确认这个错误也发生在我身上,所以我认为这排除了数组不能包含在字典中的可能性。
关于swift - Xcode 崩溃试图将数组作为 'value' 添加到字典(使用 Playground 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24041371/