`
浮生长恨
  • 浏览: 211713 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[NSKeyedUnarchiver initForReadingWithData:]: incomprehensible archive version

阅读更多
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSKeyedUnarchiver initForReadingWithData:]: incomprehensible archive version (-1)'
抄书上的一段代码,结果就出现这个异常,刚开始是好的,后来修改了一下plist文件名,再运行的时候报错。

应该是因为之前没有完成程序的时候编译运行过一次,并保存了文件。 然后你又改变了数据的结构,所以 unarchiver 不认识你的文件了。

我的解决办法:点Xcode的Run选项下面的clean选项,这个选项应该会将临时文件和缓存清除掉,重新运行就可以了
分享到:
评论

相关推荐

    ios-数据存储之归档解档 NSKeyedArchiver NSKeyedUnarchiver.zip

    详细介绍:github.com/pro648/tips/wiki/数据存储之归档解档-NSKeyedArchiver-NSKeyedUnarchiver - archiveRootObject: toFile:不能决定如何处理归档的数据,直接被写入了文件。 - ...

    ios12解档和归档.zip

    2. 创建NSKeyedUnarchiver实例:使用`+[NSKeyedUnarchiver unarchiveObjectWithData:]`方法,传入NSData对象。 3. 恢复对象:返回的对象会是原始类型,或者其所有属性都被正确地恢复。 在iOS 12中,这些过程仍然...

    AutomaticCoder.zip

    Person *thePerson = [NSKeyedUnarchiver unarchiveObjectWithFile:@"./person.data"]; NSLog(@"%@",thePerson.name); //http://zhangxi.me NSLog(@"%@",thePerson.male?@"男":@"女"); //男 NSLog(@"%ld",...

    ios-轻量级对象字典转换库.zip

    功能: 一、json、对象、字典等随意转换,容纳所有类型,包括常用的NSObject家族,基本数据类型int、long等,冷门的...myObj = [NSKeyedUnarchiver unarchiveObjectWithFile:path]; // 打印 7、NSLog(@"%@", myObj);

    Swift5.2 (model数组)归档解档

    在iOS开发中,我们经常使用NSKeyedArchiver和NSKeyedUnarchiver这两个类来实现Swift对象的序列化和反序列化。 在Swift 5.2中,这个过程对于数组特别重要,尤其是当数组包含自定义模型对象时。模型对象通常是那些...

    IOS NSKeyedArchiver

    当需要恢复对象时,`NSKeyedUnarchiver`会反向执行此过程,解码并重构对象。这一特性使得`NSKeyedArchiver`非常适合用来保存用户设置、游戏进度或者应用程序状态等数据。 1. **归档单个对象**: 要归档一个对象,...

    编码解码的艺术:深入Objective-C中的NSCoding协议

    NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; Person *unarchivedPerson = [unarchiver decodeObjectForKey:@"person"]; NSLog(@"Name: %@, Age: %ld", ...

    Iphone 序列化与反序列化,队列的实例

    这涉及到调用`initForReadingWithData:`方法创建解码器,然后通过`decodeObjectForKey:`来获取对象的各个属性。 5. **验证结果**:最后,你可以检查反序列化后的对象是否与原始对象具有相同的属性值,以确认序列化和...

    Archiver归档的使用

    在iOS中,归档主要依赖于`NSKeyedArchiver`和`NSKeyedUnarchiver`两个类来完成对象的存档与还原。这两个类都是基于`NSCoding`协议实现的。 #### 二、实现原理 为了实现归档,对象需要遵循`NSCoding`协议,这意味着...

    归档的封装

    归档的概念基于苹果的Foundation框架,特别是NSKeyedArchiver和NSKeyedUnarchiver类,它们提供了序列化和反序列化的功能。在本案例中,"归档的封装"是指开发人员已经创建了一个封装好的库或类,简化了使用归档操作的...

    ios 归档与解档

    .appendingPathComponent("user.archive") // 归档 do { try NSKeyedArchiver.archiveRootObject(user, toFile: archivePath.path) } catch { print("Error archiving: \(error)") } // 解档 if let ...

    ios demo,NSData和NSDictionary之间的相互转换的实现案例

    将NSData反序列化回NSDictionary,我们可以使用`NSKeyedUnarchiver`类的`unarchiveObjectWithData:`方法。对于JSON格式的NSData,我们可以使用`JSONObjectWithData:options:error:`方法。 ```objc // 反序列化回...

    objective-c 的归档和反归档实现

    MyClass *unarchivedObject = [NSKeyedUnarchiver unarchiveObjectWithData:dataFromFile]; ``` 归档和反归档不仅可以应用于自定义对象,还可以用于任何遵循NSCoding协议的对象,包括基本数据类型、NSArray、...

    (OC)归档解档(嵌套模型)(模型数组)

    只需调用`+[NSKeyedArchiver archivedDataWithRootObject:]`和`+[NSKeyedUnarchiver unarchiveObjectWithData:]`,即可完成归档和解档。这种方法简化了编码和解码步骤,但同样需要确保根对象及其所有嵌套对象遵循...

    DemoArchivedCoding

    2. 解档过程:当需要恢复对象时,可以使用`+[NSKeyedUnarchiver unarchiveObjectWithData:]`方法,将NSData对象解档回原始对象。 三、Demo解析 "DemoArchivedCoding"可能包含了一个简单的iOS应用,该应用展示了如何...

    iOS中几种数据持久化方案 --X枫林1

    `和`id object = [NSKeyedUnarchiver unarchiveObjectWithFile:path];` 4. **SQLite 3**: - SQLite是一个轻量级的关系型数据库,适用于存储结构化的数据。 - 使用方法:通过`FMDB`等库与SQLite交互,执行SQL语句...

    (OC)归档解档(单个模型)

    return [NSKeyedUnarchiver unarchiveObjectWithFile:filePath]; } ``` 5. **安全注意事项**: - 当编码对象时,确保所有属性都是可编码的,这意味着它们要么是基本数据类型,要么也遵循NSCoding协议。 - 对于...

    iOS OC Json文件转Model对象

    4. 使用生成的Model:导入生成的Model头文件,然后可以使用`init`方法或者`NSKeyedUnarchiver`来创建Model实例。 ```objc MyModel *model = [[MyModel alloc] initWithDictionary:jsonDict]; // 或者 NSData *data ...

Global site tag (gtag.js) - Google Analytics