2013-08-05 21 views
2

我需要将我的图像编码为文本。 而且我发现这个类为: Base64 for iOS with ARCBase64与NSPropertyListSerialization

当我尝试编码我的形象我看到NSPropertyListSerialization产生绝对为base64不相同的字符串。是否正确的方式来创建与NSPropertyListSerialization base64字符串还是我错过了什么?

Base64编码:

[data base64EncodedString]; 

NSPropertyListSerialization:

[NSString stringWithUTF8String:[[NSPropertyListSerialization dataWithPropertyList:data format:NSPropertyListXMLFormat_v1_0 options:0 error:nil] bytes]] 

回答

1

不,你不会错过任何。 Base64只是一种用ASCII编码二进制数据的标准,而pLists使用Base64编码来编码二进制数据(如NSPropertyListSerialization),因此它们应该为相同的二进制数据创建相同的Base64字符串。

如果你想知道在你的应用程序中使用哪一个,我建议你使用base64库。尽管Apple已经推动pLists成为标准,pLists可能会将二进制数据编码为未来的Base64,但在极少数情况下,他们会改变某些内容或放弃对pLists的支持,从而导致代码崩溃。此外,最好在您的代码中清楚(对于您自己和其他人)您将数据编码为64位。