我需要将图像编码为文本。 我找到了这个类: 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]]
答案 0 :(得分:1)
不,你没有遗漏任何东西。 Base64只是编码ASCII中二进制数据的标准,而pLists使用Base64编码来编码像图像这样的二进制数据(使用NSPropertyListSerialization),因此它们应该为相同的二进制数据创建相同的Base64字符串。
如果您想知道在您的应用程序中使用哪个,我建议您使用base64库。虽然Apple已经推动pLists成为标准,而pLists可能总是将二进制数据编码为Base64,但在极不可能的情况下,他们会改变某些内容或放弃对pLists的支持,否则您的代码将会崩溃。此外,最好在您的代码中清楚(对于您自己和他人)您将数据编码为64位。