2011-05-14 80 views
37

NSData和base64字符串之間進行轉換的最簡單和最快的代碼是什麼?我已經閱讀了一系列的解決方案,主要涉及添加另一個課程等。我發現了一個很好的解決方案here,但它太複雜了。在NSData和base64字符串之間轉換

+6

所有合理的解決方案將看起來像您鏈接到的馬特加拉格爾職位。 – 2011-05-14 02:08:30

+0

這裏是尋找Gallagher的圖書館,在那裏人們神祕地使用'[NSData dataFromBase64String]'而無需鏈接 – bobobobo 2013-04-19 00:54:30

+0

由於一些不可理解的原因,蘋果公司從未爲Base64提供過「原生」支持,但所有第三方套件都非常相似。只需選擇一個。 – 2013-09-26 15:20:04

回答

53

向下滾動至結論關於the page you linkeddownload the provided NSData+Base64 files的部分。它是迄今爲止我見過的最好的解決方案,並且非常易於使用。如果你可以學習Cocoa的任何知識,你可以學習使用該項目。


NSString *originalString = [NSString stringWithFormat:@"test"]; 
NSData *data = [NSData dataFromBase64String:originalString]; 
NSLog([data base64EncodedString]); 

上面將其轉換爲base64並回到正常的未編碼的字符串之後打印出原始字符串。

+2

我已經下載了兩個,所以我需要將該項目添加到我的或我可以只是簡單地拖動NSData + Base64? – aherlambang 2011-05-14 12:55:22

+2

您想要將這兩個文件添加到您的項目中。一般來說,當你看到像'NSData + Base64'這樣的名字時,首先應該在你的頭上運行的是這是'NSData'類的一個類。換句話說,你只需要使用'NSData'來調用這些新方法,而不是一些新的'Base64'類。 – 2011-05-14 14:30:25

+1

但是,我相信你仍然需要導入類別。就個人而言,我建議將其放入預編譯頭文件中,以便您可以在項目中的任何位置使用'NSData'上的方法。 – 2011-05-14 14:31:49

1

我結束了使用此相同的類按SUDZC提供

實施是先易我做了一個進口

#import "NSData+Base64.h" 

然後我可以打電話給我的數據。

+0

我得到的只是'NSData + Base64.h'文件未找到。 – Martin 2017-09-26 14:55:36

+1

@Martin我使用了由[sudzc](http://www.sudzc.com)lib生成的類,它爲您創建了這個類,然後您可以在您的實現文件(.m)中導入 – SeeCoolGuy 2017-09-29 16:49:37

0

或者,你可以看看的(很新)CryptoCompatibility示例項目,我覺得這是對的base64操作的包裝類。這是一個MacOS示例,但它使用庫libresolve.dylib,我認爲它也可以在iOS上使用(至少在iOS7中可以看到它)。

29

您不需要任何自定義實現。在其他答案中顯示從NSData創建base64。有相反的方向。從Base64字符串到NSData:

NSString *base64Encoded = @"some base64 string"; 
NSData *nsdataFromBase64String = [[NSData alloc] initWithBase64EncodedString:base64Encoded options:0]; 
+6

這添加了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

+0

這應該是被接受的答案... – csblo 2017-03-27 09:22:06

+0

我同意這應該是被接受的答案。 – Wayne 2017-07-20 08:29:21

相關問題