在NSData
和base64字符串之間進行轉換的最簡單和最快的代碼是什麼?我已經閱讀了一系列的解決方案,主要涉及添加另一個課程等。我發現了一個很好的解決方案here,但它太複雜了。在NSData和base64字符串之間轉換
回答
向下滾動至結論關於the page you linked和download the provided NSData+Base64 files的部分。它是迄今爲止我見過的最好的解決方案,並且非常易於使用。如果你可以學習Cocoa的任何知識,你可以學習使用該項目。
例
NSString *originalString = [NSString stringWithFormat:@"test"];
NSData *data = [NSData dataFromBase64String:originalString];
NSLog([data base64EncodedString]);
上面將其轉換爲base64並回到正常的未編碼的字符串之後打印出原始字符串。
我已經下載了兩個,所以我需要將該項目添加到我的或我可以只是簡單地拖動NSData + Base64? – aherlambang 2011-05-14 12:55:22
您想要將這兩個文件添加到您的項目中。一般來說,當你看到像'NSData + Base64'這樣的名字時,首先應該在你的頭上運行的是這是'NSData'類的一個類。換句話說,你只需要使用'NSData'來調用這些新方法,而不是一些新的'Base64'類。 – 2011-05-14 14:30:25
但是,我相信你仍然需要導入類別。就個人而言,我建議將其放入預編譯頭文件中,以便您可以在項目中的任何位置使用'NSData'上的方法。 – 2011-05-14 14:31:49
我結束了使用此相同的類按SUDZC提供
實施是先易我做了一個進口
#import "NSData+Base64.h"
然後我可以打電話給我的數據。
我得到的只是'NSData + Base64.h'文件未找到。 – Martin 2017-09-26 14:55:36
@Martin我使用了由[sudzc](http://www.sudzc.com)lib生成的類,它爲您創建了這個類,然後您可以在您的實現文件(.m)中導入 – SeeCoolGuy 2017-09-29 16:49:37
或者,你可以看看的(很新)CryptoCompatibility示例項目,我覺得這是對的base64操作的包裝類。這是一個MacOS示例,但它使用庫libresolve.dylib,我認爲它也可以在iOS上使用(至少在iOS7中可以看到它)。
從iOS 7開始,NSData
現在直接使用新方法-base64EncodedDataWithOptions:
和-base64EncodedStringWithOptions:
提供此功能。 (這些選項可讓您指定字符串是/應爲行包裝,處理電子郵件和麪向用戶的顯示器更好。)
您不需要任何自定義實現。在其他答案中顯示從NSData創建base64。有相反的方向。從Base64字符串到NSData:
NSString *base64Encoded = @"some base64 string";
NSData *nsdataFromBase64String = [[NSData alloc] initWithBase64EncodedString:base64Encoded options:0];
這添加了iOS 7/OSX 10.9,並且它是這裏提供的最佳解決方案。 [Documentation here](https://developer.apple.com/library/ios/documentation/cocoa/Reference/Foundation/Classes/NSData_Class/index.html#//apple_ref/occ/instm/NSData/initWithBase64EncodedString:options :) 。 – jonstaff 2014-10-23 07:13:54
這應該是被接受的答案... – csblo 2017-03-27 09:22:06
我同意這應該是被接受的答案。 – Wayne 2017-07-20 08:29:21
- 1. 如何將Base64數據和NSData轉換爲字符串
- 2. 將字符串轉換爲SHA1和base64
- 3. double和「+」和「 - 」之間的轉換和轉換字符串
- 4. 將NSData轉換爲base64
- 5. 如何本地轉換字符串 - > Base64和BASE64 - >字符串
- 6. 將NSData轉換爲Java字符串
- 7. 將NSData轉換爲字符串?
- 8. Swift2將字符串轉換爲NSData
- 9. 將NSData/UIImage轉換爲字符串
- 10. 預測式功能:在字符串和符號之間轉換
- 11. 字符串到base64的轉換
- 12. 將base64字符串轉換爲X509 certifcate
- 13. 將Base64字符串轉換爲UIImage
- 14. java將inputStream轉換爲base64字符串
- 15. VB.NET - 將MP3轉換爲Base64字符串
- 16. 如何將NSData中的NSData轉換爲字符串?
- 17. 如何將字符串數組轉換爲NSData,將NSData轉換爲字符串數組?
- 18. 時間字符串和第二個值之間的轉換
- 19. 轉換爲base64字符串編碼,反之亦然
- 20. Javascript - 在Unicode字符串和ArrayBuffer之間轉換
- 21. 動態LINQ - 無法在GUID和字符串之間轉換
- 22. 在多行字符串和TstringList之間轉換
- 23. 在android中的消息和字符串之間的轉換?
- 24. CGO:在LPCWSTR和字符串之間轉換
- 25. 在Newtonsoft.Json.net中轉換雙打和字符串之間的問題
- 26. 將.net字符串對象轉換爲base64編碼字符串
- 27. 將BASE64字符串轉換爲BASE16(HEX)字符串?
- 28. 在Base64和HMAC sha1中轉換字符串
- 29. 的Java:字符串和字節之間的轉換[]
- 30. 將私鑰(SecRefKey)轉換爲NSData或Base64
所有合理的解決方案將看起來像您鏈接到的馬特加拉格爾職位。 – 2011-05-14 02:08:30
這裏是尋找Gallagher的圖書館,在那裏人們神祕地使用'[NSData dataFromBase64String]'而無需鏈接 – bobobobo 2013-04-19 00:54:30
由於一些不可理解的原因,蘋果公司從未爲Base64提供過「原生」支持,但所有第三方套件都非常相似。只需選擇一個。 – 2013-09-26 15:20:04