为何archiveRootObject和unarchiveObjectWithFile正常,而archivedDataWithRootObject和unarchivedObjectOfClasses一直报错。
[NSKeyedArchiver archiveRootObject:account toFile:path];和`c
PPAccountModel *account = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
```c
'archiveRootObject:toFile:' is deprecated: first deprecated in iOS 12.0 - Use +archivedDataWithRootObject:requiringSecureCoding:error: and -writeToURL:options:error: instead
'unarchiveObjectWithFile:' is deprecated: first deprecated in iOS 12.0 - Use +unarchivedObjectOfClass:fromData:error: instead
替换很简单,但是会一堆问题等着你解决,序列化和反序列全失败。
先说能简单解决的序列化(归档):
NSString *path = [self PathWithFileName:@"啊啊啊.data"];//拓展名可以自己随便取
DYGlobleData.token = @"";
PPAccountModel *account = nil;
// [NSKeyedArchiver archiveRootObject:account toFile:path];
NSError *error = nil;
NSData *archiveData = [NSKeyedArchiver archivedDataWithRootObject:account requiringSecureCoding:YES error:&error];
if (archiveData == nil || error) {
NSLog(@"归档失败:%@", error);
}
BOOL isSuccess = [archiveData wri

文章讲述了在iOS开发中使用NSKeyedArchiver进行序列化和反序列化时遇到的问题,包括`archiveRootObject:toFile:`和`unarchiveObjectWithFile:`被弃用,以及替换为`archivedDataWithRootObject:requiringSecureCoding:error:`和`unarchivedObjectOfClass:fromData:error:`后出现的错误。问题主要集中在类未遵循NSSecureCoding协议和处理空数组的序列化。通过遵循NSSecureCoding协议和正确处理序列化对象的属性,最终解决了序列化和反序列化失败的问题。
最低0.47元/天 解锁文章
1559

被折叠的 条评论
为什么被折叠?



