簡體   English   中英

在NSData和base64字符串之間轉換

[英]Converting between NSData and base64 strings

NSData和base64字符串之間進行轉換的最簡單,最快的代碼是什么? 我在SO上閱讀了一堆解決方案,大多數都涉及添加另一個類等。我在這里找到了一個很好的解決方案但它太復雜了。

向下滾動到您鏈接的頁面上的結論部分,然后下載提供的NSData + Base64文件 它是迄今為止我見過的最好的解決方案,非常容易使用。 如果您可以了解有關Cocoa的任何信息,您可以學習使用該項目。


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

以上將在將其轉換為base64並返回到正常的未編碼字符串后打印出原始字符串。

從iOS 7開始, NSData現在直接使用新方法-base64EncodedDataWithOptions:-base64EncodedStringWithOptions:提供此功能。 (這些選項允許您指定字符串是/應該是換行的,更好地處理電子郵件和面向用戶的顯示。)

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

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

我最終使用了SUDZC提供的同一個類

實施很容易我先做了一個導入

 #import "NSData+Base64.h"

然后我就能調用我的數據了。

 NSData *data = [[NSData alloc] initWithData:[NSData dataWithBase64EncodedString:strData]];

或者您可以查看(非常新的) CryptoCompatibility示例項目,我認為有一個用於base64操作的包裝類。 它是一個MacOS示例,但它使用庫libresolve.dylib,我認為也可以在iOS上使用(至少在iOS7中看到它)。

請注意,還有更多Base64格式。

例如,JWT使用URL安全格式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM