当我终止该应用程序时,我的数据已成功保存在文档目录中,但是当我再次启动该应用程序时,该数据不可见。此处是其保存和加载数据的代码。

func saveChecklistItems()
{
    let data = NSMutableData()

    let archiver = NSKeyedArchiver(forWritingWithMutableData: data)

    archiver.encodeObject(items, forKey: "Checklists")

    archiver.finishEncoding()

    data.writeToFile(dataFilePath(), atomically: true)
}

func loadChecklistItems()
{
    let path = dataFilePath()

    if NSFileManager.defaultManager().fileExistsAtPath(path)
    {
        if let data = NSData(contentsOfFile: path)
        {
            let unarchiver = NSKeyedUnarchiver(forReadingWithData:data)

            if let checklistItems =  unarchiver.decodeObjectForKey("ChecklistsItems") as? [ChecklistItem]
            {
                items = checklistItems
            }
            else
            {
                unarchiver.finishDecoding()
            }
        }
    }
}

最佳答案

在这里,您将kay用作

 archiver.encodeObject(items, forKey: "Checklists")

在这里你曾经用作...
unarchiver.decodeObjectForKey("ChecklistsItems") as? [ChecklistItem]

将其更改为...。
unarchiver.decodeObjectForKey("Checklists") as? [ChecklistItem]

10-08 07:29