Какой самый простой и быстрый код для преобразования между NSData
и строкой base64? Я прочитал кучу решений в SO, и в основном они связаны с добавлением другого класса и т.д. Я нашел отличное решение здесь, но это слишком сложно.
Преобразование между строками NSData и base64
Ответ 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).