Base64 vs NSPropertyListSerialization

时间:2013-08-05 15:41:37

标签: ios nsstring uiimage base64

我需要将图像编码为文本。 我找到了这个类: Base64 for iOS with ARC

当我尝试对图像进行编码时,我发现NSPropertyListSerialization创建的字符串与base64完全相同。是用NSPropertyListSerialization创建base64字符串的正确方法还是我遗漏了什么?

Base64的:

[data base64EncodedString];

NSPropertyListSerialization:

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

1 个答案:

答案 0 :(得分:1)

不,你没有遗漏任何东西。 Base64只是编码ASCII中二进制数据的标准,而pLists使用Base64编码来编码像图像这样的二进制数据(使用NSPropertyListSerialization),因此它们应该为相同的二进制数据创建相同的Base64字符串。

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