gpt4 book ai didi

iphone - NSKeyedUnarchiver 未按预期运行

转载 作者:行者123 更新时间:2023-11-29 11:17:26 27 4
gpt4 key购买 nike

我在 NSKeyedUnarchiver 中遇到了一个奇怪的行为。

我存档一个数据,对于这个例子我只使用一个字符串:

NSMutableData       *myData = [ NSMutableData data ];
NSKeyedArchiver *archiver = [[ NSKeyedArchiver alloc ] initForWritingWithMutableData:myData ];
NSString *testString = [ NSString stringWithString:@"Hello World!" ];
[ archiver encodeObject:testString forKey:@"test" ];
[ archiver finishEncoding ];

然后我想取消存档。如果我使用

NSKeyedUnarchiver  *unarchiver = [ NSKeyedUnarchiver unarchiveObjectWithData:myData ];
NSString *result = [ unarchiver decodeObjectForKey:@"test" ];

我得到的结果为零,但如果我使用:

NSKeyedUnarchiver  *unarchiver = [[ NSKeyedUnarchiver alloc ] initForReadingWithData:myData ];
NSString *result = [ unarchiver decodeObjectForKey:@"test" ];

我把我的绳子拿回来了。现在我认为 [ NSKeyedUnarchiver unarchiveObjectWithData:myData ] 只是 [[ NSKeyedUnarchiver alloc ] initForReadingWithData:myData ] 的一种便捷方法,但它似乎并没有那样做。我错了吗?

谢谢礼萨

最佳答案

unarchiveObjectWithData

Apple:“解码并返回先前由 NSKeyedArchiver 编码并存储在给定 NSData 对象中的对象图。”

这意味着它取消归档一个完整的类,而不是准备取消归档单个对象。

initForReadingWithData

Apple:“初始化接收器以解码先前由 NSKeyedArchiver 编码的文件。

返回:为解码数据而初始化的 NSKeyedUnarchiver 对象。”

这意味着只需初始化一个准备好接受取消存档方法调用的取消存档程序。

关于iphone - NSKeyedUnarchiver 未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8818114/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com