【问题标题】:I can't load the data which stored in my document directory我无法加载存储在我的文档目录中的数据
【发布时间】:2015-07-28 12:23:34
【问题描述】:

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

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()
            }
        }
    }
}

【问题讨论】:

    标签: ios iphone swift ios9


    【解决方案1】:

    在这里你已经使用了 kay

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

    你在这里用作...

    unarchiver.decodeObjectForKey("ChecklistsItems") as? [ChecklistItem]
    

    把它改成 ....

    unarchiver.decodeObjectForKey("Checklists") as? [ChecklistItem]
    

    【讨论】:

    • 感谢@sriram hegde。它有效,我肯定会投票给你。
    • 我的意思是在投票系统下方有一个勾号表示这个答案有效,如果你点击它,那将有很大帮助!
    猜你喜欢
    • 1970-01-01
    • 2016-07-27
    • 2017-12-06
    • 2013-08-02
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    相关资源
    最近更新 更多