NSMutableArray для байтового массива в строку - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть приложение для iPad, которое связывается с веб-сервисом. Там я могу скачать зашифрованный файл. В конкретном запросе я получаю JSON с учетными данными для входа. Также в этом json есть ключ, который используется для шифрования данных.

Ключ выглядит так: [0,44,215,1,215,88,94,150]

С помощью json framework я могу поместить этот ключ в NSMutableArray. После этого я использую код AES256 для расшифровки файла. Но этот код нуждается в NSString в качестве ключа. Итак, мой вопрос: как я могу декодировать этот NSMutableArray в NSString? Я думаю, мне сначала нужно поместить его в байтовый файл, а затем поместить в строку NSString?

Кто может мне помочь с этим?

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

Ответы [ 2 ]

3 голосов
/ 22 ноября 2011

Во-первых, преобразуйте ваш массив чисел (я предполагаю, что они даны как NSNumbers) в массив C, используя код, подобный первому фрагменту в принятом ответе здесь . Другими словами, что-то похожее на это:

// Test array for now -- this data will come from JSON response
NSArray* nsArray = [NSArray arrayWithObjects:[NSNumber numberWithChar:1],
                                             [NSNumber numberWithChar:2],
                                             nil];
char cArray[2];

// Fill C-array with ints
int count = [nsArray count];

for (int i = 0; i < count; ++i) {
    cArray[i] = [[nsArray objectAtIndex:i] charValue];
}

Затем создайте строку NSString, используя правильную кодировку:

NSString *encodedStr = [NSString stringWithCString:cArray encoding:NSUTF8StringEncoding];

Примечание: это эскизы кода, они не были протестированы!

РЕДАКТИРОВАТЬ: изменено с целых на символы.

0 голосов
/ 22 ноября 2011

Если ваш массив представляет собой последовательность чисел, вы можете просмотреть его

//Assume you have created keyArray from your JSON
NSMutableString * keyString = [NSMutableString string];
for (id element in keyArray) {
    [string appendFormat:@"%@", id];
}

// if you need the comma's in the string
NSMutableString * keyString = [NSMutableString string];
for (id element in keyArray) {
    [string appendFormat:@"%@,", id];
}
int length = [string length];
NSRange range = NSMakeRange(0, length-1);
string = [string substringWithRange:range];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...