在转换为数组后无法显示数据

时间:2015-07-17 16:31:28

标签: ios swift core-data

我有一个名为文件夹的实体,我正在尝试打印出一组已创建的文件夹。在使用以下代码创建文件夹时,我确信我的数据正在保存,println确实执行了正确的数据;

@IBAction func createFolder(sender: AnyObject) {

        //Save new event
        let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
        let entity = NSEntityDescription.entityForName("Folder", inManagedObjectContext: moc!)
        let folder = Folder(entity: entity!, insertIntoManagedObjectContext: moc!)


        folder.title = createFolderField.text
        folder.date = NSDate()

        println("\(folder)")

        var error: NSError?
        moc?.save(&error)
    }

    exit()

}

但是当尝试打印出文件夹数组时,控制台在创建文件夹后尝试计数时输出nil或0。如果我的保存代码没问题,那么在创建数组时我必须做错事。

let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext

var folders = [Folder]()

func loadData() {

    var error: NSError?
    let request = NSFetchRequest(entityName: "Folder")
    request.sortDescriptors = [NSSortDescriptor(key: "date", ascending: true)]

    self.folders = moc?.executeFetchRequest(request, error: &error) as! [Folder]
}

override func viewWillAppear(animated: Bool) {

    loadData()
}


override func viewDidLoad() {
    super.viewDidLoad()

    println("\(folders.count)")

    loadData()

}

有没有人有任何想法我可能会出错保存/获取数据?

1 个答案:

答案 0 :(得分:0)

我在尝试打印后调用loadData()因此未填充数组。我期待viewWillAppear填充它。