2013-08-05 20 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位。