0

我正在尝试从 NSKeyedArchiver 中提取 NSString,如下所示:

NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *coder = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[coder encodeInt:1 forKey:@"myField"];
[coder finishEncoding];

NSString *myString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@", myString);

问题是 myString 为零(NSLog 打印 '(null)')。上面的代码有什么问题?

我读过的其他帖子提到这通常是由于编码错误(即 NSMutableData 使用与 UTF-8 不同的编码)。我已经尝试了所有不同类型的编码,但仍然没有运气。

4

1 回答 1

-1

我看不到您在哪里编码字符串。通常你会用 编码NSStringNSKeyedArchiver然后用NSKeyedUnarchiver. 看起来您并不了解这一切是如何运作的。我建议阅读有关使用 Obj-C 进行归档的信息。

于 2012-08-08T14:30:51.683 回答