2

我在使用 NSKeyedUnarchiever 加载对象时遇到问题。
我的对象是一个 NSDictionary,其中包含几个对象,如数组和我自己的一些。它们都符合 NSCoding 协议。

我像这样保存我的对象:

[NSKeyedArchiver archiveRootObject:myDictionary toFile:path];

如果我使用此代码在同一运行中加载对象:

myDictionary = [NSKeyedUnarchiver unarchiveObjectWithFile:path];

一切正常。
但是当我退出应用程序并再次打开它时,它就在这条线上崩溃了。

有谁知道出了什么问题?

4

1 回答 1

0

确保您的保存成功:

if (![NSKeyedArchiver archiveRootObject:myDictionary toFile:path])
{
    // saving failed for some reason
    return;
}

在尝试取消归档之前,还要确保文件存在:

if ([[NSFileManager defaultManager] fileExistsAtPath:path])
{
    // file does not exist at path (deleted?)
    return;
}
于 2012-12-18T17:20:45.093 回答