ios – 将nil传递给archivedDataWithRootObject返回奇怪的NSData

ios – 将nil传递给archivedDataWithRootObject返回奇怪的NSData,第1张

概述在我的代码中的某个地方 NSData * data = [NSKeyedArchiver archivedDataWithRootObject:someArray]; 如果someArray为零,我希望数据为零,但它返回一些我不理解的数据. 我把它打印出来如下 < 62706c69 73743030 d4010203 0405080a 0b542474 6f705824 6f626a65 6374 在我的代码中的某个地方

NSData * data = [NSKeyedArchiver archivedDataWithRootObject:someArray];

如果someArray为零,我希望数据为零,但它返回一些我不理解的数据.

我把它打印出来如下
< 62706c69 73743030 d4010203 0405080a 0b542474 6f705824 6f626a65 63747358 24766572 59246172 73696f6e 63686976 6572d106 0754726f 6f748000 a1095524 6e756c6c 12000186 a05f100f 4e534b65 79656441 72636869 76657208 11161f28 32353a3c 3e444900 00000000 00010100 00000000 00000000 00000c00 00000000 00000000 00005b>

我试过NSData * data = [NSKeyedArchiver archivedDataWithRootObject:nil];确保论证肯定是零.

我阅读了文档,但没有找到任何解释.

那究竟发生了什么?

编辑
我将数据写入文件,结果是这样的pList.它可能是NSKeyedArchiver存储对象的方式.

解决方法 这些数据看起来像一个“空”的pList.您可以将其转换为字符串并记录以检查自己.由于归档程序使用set格式,因此您将始终获得数据包装.

从技术上讲,它可以编码,以便这不是必要的,但你无法控制它.

如果您不需要存储nil或空源数组的存档,那么您的代码应检查并不执行存档(并在需要时删除任何现有的存档文件).

总结

以上是内存溢出为你收集整理的ios – 将nil传递给archivedDataWithRootObject返回奇怪的NSData全部内容,希望文章能够帮你解决ios – 将nil传递给archivedDataWithRootObject返回奇怪的NSData所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1074895.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存