Ios XCode 6.1可能的索引错误?

Ios XCode 6.1可能的索引错误?,ios,xcode,swift,Ios,Xcode,Swift,我试图用以下方法在操场上创建一个复杂的数组: import UIKit let demoData = [ [ "name":"Mr Bean", "number": "012345678", "address": "4 D. Street", "dob": "21-9-1970", "gender": "male", "docs": [ "alerts":["jt_a

我试图用以下方法在操场上创建一个复杂的
数组

import UIKit

let demoData = [
    [
        "name":"Mr Bean",
        "number": "012345678",
        "address": "4 D. Street",
        "dob": "21-9-1970",
        "gender": "male",
        "docs": [
            "alerts":["jt_alert_1.jpg", "jt_alert_2.jpg"],
            "notes":["jt_notes_1.png", "jt_notes_2.jpg", "jt_notes_3.jpg", "jt_notes_4.jpg"],
            "correspondence": [],
            "investigations": [],
            "operationsheets": [],
            "treatmentcharts": []
        ]
    ],
    [
        "name":"Jenny Thomas",
        "number": "012345679",
        "address": "5 D. Street",
        "dob": "22-9-1970",
        "gender": "female",
        "docs": [
            "alerts":[],
            "notes":[],
            "correspondence": [],
            "investigations": [],
            "operationsheets": [],
            "treatmentcharts": []
        ]
    ]
];

let notes: AnyObject? = demoData[0]["docs"]!["notes"]!
let notePics = notes as Array<String>
notePics[0]
导入UIKit
设解调数据=[
[
“姓名”:“憨豆先生”,
“编号”:“012345678”,
“地址”:“D街4号”,
“dob”:“21-9-1970”,
“性别”:“男性”,
“文件”:[
“警报”:[“jt_警报_1.jpg”、“jt_警报_2.jpg”],
“注释”:[“jt_notes_1.png”、“jt_notes_2.jpg”、“jt_notes_3.jpg”、“jt_notes_4.jpg”],
“通信”:[],
“调查”:[…],
“操作表”:[],
“治疗图表”:[]
]
],
[
“姓名”:“詹妮·托马斯”,
“编号”:“012345679”,
“地址”:“D街5号”,
“dob”:“22-9-1970”,
“性别”:“女性”,
“文件”:[
“警报”:[],
“说明”:[…],
“通信”:[],
“调查”:[…],
“操作表”:[],
“治疗图表”:[]
]
]
];
让我们注意:任何对象?=解调数据[0][“文档”]![“注释”]!
让notePics=notes作为数组
附注[0]
右下角的纺车一直在旋转。 当我创建一个新的swift项目时,相同的代码在XCode索引时冻结了所有内容

其他人也有同样的问题吗?如果是,有什么解决办法


提前感谢

您的数据非常复杂,使Swift很难了解您在做什么。向编译器提示解调数据的结构:

let demoData:[[String:AnyObject]] = [
   ...
一切都会好的

在解压缩结构时,您可能还希望更明确地了解您希望找到的内容:

if let docdict = demoData[0]["docs"] as? [String:AnyObject] {
    if let notePics = docdict["notes"] as? [String] {
        println(notePics[0])
    }
}

可选绑定(
if-let
)与条件强制转换(
as?
)相结合,为程序提供了额外的安全性。如果其中一个键有误,或者值的数据类型有误,这将永远不会进入内部块。如果使用强制展开(
),如果密钥不在词典中,程序将崩溃。同样,如果您将值(使用
as
)强制转换为它不是的类型,您的程序将崩溃。

我很确定问题与for相同:语句太长看起来您是对的。然而,我仍然相信XCode的行为不正常。斯威夫特还是个婴儿。有时它需要一只引导的手来行走。