2

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

当我尝试对我的图像进行编码时,我看到它NSPropertyListSerialization创建的字符串与 base64 完全相同。这是创建base64字符串的正确方法NSPropertyListSerialization还是我错过了什么?

Base64:

[data base64EncodedString];

NSPropertyList序列化:

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

1 回答 1

1

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

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

于 2013-10-01T16:15:35.080 回答