swift - Xcode 崩溃试图将数组作为 'value' 添加到字典(使用 Playground 文件)

标签 swift

经过多次实验和多次崩溃,我还是想不通:

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/

相关文章:

iOS 应用程序在模拟器中以后台模式工作,但在设备中不工作?

swift - 使用 SwiftUI 时尝试在 View 上显示工作表时应用程序崩溃

ios - 为什么当应用程序转移到新的应用程序商店帐户时,没有为所有用户显示更新?

ios - Swift 静态表格单元格页脚文本

swift - 如何在 StackView 中的两个 View 之间设置动画?

swift - 比较值并在 Swift 中返回一个 bool

swift - 在主项目中找不到链接到 Cocoapod 的静态框架

ios - 试图让用户保存他们的个人资料 img。但我一直收到无法无参数调用 'user?' 的消息。

ios - 等同于 [NSTimeZone timeZone With Abbreviation : @"GMT"] in swift

ios - 游戏中心沙盒问题