Преобразование между строками NSData и base64

Какой самый простой и быстрый код для преобразования между NSData и строкой base64? Я прочитал кучу решений в SO, и в основном они связаны с добавлением другого класса и т.д. Я нашел отличное решение здесь, но это слишком сложно.

Ответ 1

Перейдите к разделу Заключение на странице, которую вы связали и скачать предоставленные NSData + Base64 файлы. Это лучшее решение, которое я видел до сих пор и невероятно прост в использовании. Если вы можете узнать что-нибудь о Cocoa, вы можете научиться использовать этот проект.


Пример

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

Вышеприведённая версия выведет исходную строку после преобразования ее в base64 и обратно в обычную незакодированную строку.

Ответ 2

Начиная с iOS 7, NSData теперь напрямую предоставляет эту функциональность новым методам -base64EncodedDataWithOptions: и -base64EncodedStringWithOptions:. (В параметрах вы можете указать, что строка должна быть/должна быть обернута линией, лучше иметь дело с электронной почтой и отображаемыми пользователем дисплеями.)

Ответ 3

Вам не нужна специальная реализация. Создание base64 из NSData показано в других ответах. Существует противоположное направление. От строки Base64 до NSData:

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

Ответ 4

В итоге я использовал тот же класс, что и SUDZC

реализация была простой, сначала я сделал импорт

 #import "NSData+Base64.h"

тогда мне удалось вызвать мои данные.

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

Ответ 5

Или вы можете взглянуть на (совершенно новый) CryptoCompatibility, я думаю, что существует класс-оболочка для операции base64, Это образец MacOS, но он использует библиотеку libresolve.dylib, и я думаю, что она доступна и на iOS (см., По крайней мере, здесь, в iOS7).