2014-02-05 12 views
2

Я разрабатываю приложение, которое должно поддерживать iOS5, iOS6, iOS7.Как кодировать и декодировать NSString в iOS?

В моем приложении я хочу закодировать свои NSString Данные, используя base64encoding.

Ниже приводится код, я использую для кодирования

NSString *userData = @"data"; 
NSString *base64EncodedString = [[userData dataUsingEncoding:NSUTF8StringEncoding] 
base64EncodedStringWithOptions:0]; 

Приведенный выше код работает нормально в iOS7, но в iOS6 сбой приложения, со следующей ошибкой:

[NSConcreteMutableData base64EncodedStringWithOptions:] 

Есть любой другой способ кодирования данных или любая функция, поддерживающая iOS6 & iOS7.

Может ли кто-нибудь помочь мне с этим?

Заранее спасибо

+1

Что говорит о документации Xcode о доступности base64EncodedStringWithOptions? –

+0

Вам нужно найти (или написать) другой алгоритм кодирования base64, поскольку тот, который вы используете, предназначен только для iOS 7 или более поздней версии. – rmaddy

+0

См. InitWithBase64Encoding. –

ответ

1

не могу комментировать по какой-то причине, так что я свяжусь с old StackOverflow answer, что обеспечивает правдоподобное решение. В основном, вы конвертируете NSString в NSData и кодируете NSData.

+ (NSString *)toBase64String:(NSString *)string { 
    NSData *data = [string dataUsingEncoding: NSUnicodeStringEncoding]; 
    NSString *ret = [NSStringUtil base64StringFromData:data length:[data length]]; 
    return ret; 
} 

Конечно, вы могли бы проверить iOS7 и использовать initWithBase64EncodedString:options: для этого случая.

 Смежные вопросы

  • Нет связанных вопросов^_^