Ios 将数据从JSON文件加载到表中

Ios 将数据从JSON文件加载到表中,ios,json,swift,Ios,Json,Swift,我有一个名为“List”的核心数据模型,它有4个属性,希望将JSON文件中的数据填充到“List”类型的数组中 当我运行应用程序时,它会给出错误“致命错误:数组索引超出范围” var loadNames = [List]() var context = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext! var frc: NSFetchedResultsController = N

我有一个名为“List”的核心数据模型,它有4个属性,希望将JSON文件中的数据填充到“List”类型的数组中

当我运行应用程序时,它会给出错误“致命错误:数组索引超出范围”

var loadNames = [List]()

var context = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext!
var frc: NSFetchedResultsController = NSFetchedResultsController()
func getFetchedResultsController() -> NSFetchedResultsController {
    frc = NSFetchedResultsController(
        fetchRequest: listFetchRequest(),
        managedObjectContext: context,
        sectionNameKeyPath: "done",
        cacheName: nil)
    return frc
}
func listFetchRequest() -> NSFetchRequest {
    let fetchRequest = NSFetchRequest(entityName: "List")
    let doneSortDescriptor = NSSortDescriptor(key: "done", ascending: false)
    let nameSortDescriptor = NSSortDescriptor(key: "firstName", ascending: true)
    fetchRequest.sortDescriptors = [doneSortDescriptor, nameSortDescriptor]
    return fetchRequest
}
func isFrequent(item: List) -> Bool {
    return item.frequent == true
}

override func viewWillAppear(animated: Bool) {
    var readError:NSError?
    let filePath = NSBundle.mainBundle().pathForResource("NameList", ofType:"json")
    let data = NSData(contentsOfFile:filePath!, options: NSDataReadingOptions.DataReadingUncached, error:&readError)
    var jData = NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers, error: &readError) as! NSArray

    for i in 0..<jData.count {
        if let jfName = jData[i]["firstName"] as? String {
            if let jlName = jData[i]["lastName"] as? String {
                if let jDone = jData[i]["done"] as? NSNumber {
                    if let jFrequent = jData[i]["frequent"] as? NSNumber {

                        loadNames[i].firstName = jfName //This is where the error is pointing.
                        loadNames[i].lastName = jlName
                        loadNames[i].done = jDone
                        loadNames[i].frequent = jFrequent

                        println(loadNames.count)
                    }
                }
            }
        }
    }
}
var loadNames=[List]()
变量上下文=(UIApplication.sharedApplication().delegate为!AppDelegate)。managedObjectContext!
var frc:NSFetchedResultsController=NSFetchedResultsController()
func getFetchedResultsController()->NSFetchedResultsController{
frc=NSFetchedResultsController(
fetchRequest:listFetchRequest(),
managedObjectContext:context,
sectionNameKeyPath:“完成”,
缓存名称:nil)
返回frc
}
func listFetchRequest()->NSFetchRequest{
let fetchRequest=NSFetchRequest(entityName:“列表”)
让doneSortDescriptor=NSSortDescriptor(键:“完成”,升序:false)
让nameSortDescriptor=NSSortDescriptor(键:“firstName”,升序:true)
fetchRequest.sortDescriptors=[doneSortDescriptor,nameSortDescriptor]
返回请求
}
func isFrequent(项目:列表)->Bool{
return item.frequency==true
}
覆盖功能视图将出现(动画:Bool){
var readError:NSError?
让filePath=NSBundle.mainBundle().pathForResource(“名称列表”,类型为:“json”)
let data=NSData(contentsOfFile:filePath!,选项:NSDataReadingOptions.datareadinguncache,错误:&readError)
var jData=NSJSONSerialization.JSONObjectWithData(data!,选项:.MutableContainers,错误:&readError)作为!NSArray

对于0中的i..您应该使用loadNames数组的
append
方法添加每个列表对象。试图访问零长度数组中的索引i>=0是导致错误的原因