在Swift中,NSJSONSerialization.dataWithJSONObject能否修改输入参数?

在Swift中,NSJSONSerialization.dataWithJSONObject能否修改输入参数?,swift,crash,nsjsonserialization,Swift,Crash,Nsjsonserialization,以下Swift代码在最后一行崩溃。有两个修改可以防止它崩溃:要么在原始字典中少添加一个条目,要么用JSONObject()注释掉对dataWithJSONObject()的调用。我曾尝试使用Zombies工具来查找问题,但代码崩溃,而没有触发Zombies中报告的问题。我假设有什么东西在腐蚀记忆。你知道会发生什么吗 func testAppendAndSerialize() { var listData: [String:[String:AnyObject]] = Dictionary&

以下Swift代码在最后一行崩溃。有两个修改可以防止它崩溃:要么在原始字典中少添加一个条目,要么用JSONObject()注释掉对dataWithJSONObject()的调用。我曾尝试使用Zombies工具来查找问题,但代码崩溃,而没有触发Zombies中报告的问题。我假设有什么东西在腐蚀记忆。你知道会发生什么吗

func testAppendAndSerialize() {
    var listData: [String:[String:AnyObject]] = Dictionary<String,Dictionary<String,AnyObject>>()
    listData["a"] = ["selected": true]
    listData["b"] = ["selected": true]
    listData["c"] = ["selected": true]
    listData["d"] = ["selected": true]
    listData["e"] = ["selected": true]
    listData["f"] = ["selected": true]
    listData["g"] = ["selected": true]

    listData["a"]!["selected"] = false // Just demonstrating mutability

    var err: NSError?
    NSJSONSerialization.dataWithJSONObject(listData, options:NSJSONWritingOptions.PrettyPrinted, error: &err)

    listData["a"]!["selected"] = true // <-- EXC_BAD_ACCESS(code=EXC_I386_GPFLT)
}
func testAppendedSerialize(){
var listData:[String:[String:AnyObject]]=Dictionary()
listData[“a”]=[“选定”:true]
listData[“b”]=[“选定”:true]
listData[“c”]=[“选定”:true]
listData[“d”]=[“选定”:true]
listData[“e”]=[“选定”:真]
listData[“f”]=[“选定”:true]
listData[“g”]=[“选定”:true]
listData[“a”]![“selected”]=false//只是演示了易变性
变量错误:n错误?
NSJSONSerialization.dataWithJSONObject(列表数据,选项:NSJSONWritingOptions.PrettyPrinted,错误:&err)

listData[“a”![“selected”]=true//我可以重现问题,它看起来确实像一个bug。你应该在我提交的bug 19368336上提交一份bug报告。你有什么解决方案吗?