Преобразование NSString в uint8_t

Я работаю над примером кода шифрования данных, предоставленным Apple в «Руководстве по сертификации, ключам и доверенности». В примере кода для шифрования / дешифрования данных рассматривается uint8_t. Однако приложение реального мира будет делать это на объекте NSString. Я пытаюсь преобразовать объект NSString в uint8_t, но каждый раз, когда я получаю предупреждение о компиляторе. Решения, данные для «почти» одинаковых проблем, данных на разных форумах, похоже, не работают для меня.

Вот пример превращения любого строкового значения в uint8_t* . Самый простой способ – просто указать байты NSData as и uint8_t *. Другой вариант – выделить память и скопировать байты, но вам все равно нужно как-то отслеживать длину.

 NSData *someData = [@"SOME STRING VALUE" dataUsingEncoding:NSUTF8StringEncoding]; const void *bytes = [someData bytes]; int length = [someData length]; //Easy way uint8_t *crypto_data = (uint8_t*)bytes; 

Дополнительный способ

 //If you plan on using crypto_data as a class variable // you will need to do a memcpy since the NSData someData // will get autoreleased crypto_data = malloc(length); memcpy(crypto_data, bytes, length); //work with crypto_data //free crypto_data most likely in dealloc free(crypto_data); 
 NSString *stringToEncrypt = @"SOME STRING VALUE"; uint8_t *cString = (uint8_t *)stringToEncrypt.UTF8String; 
Interesting Posts
Давайте будем гением компьютера.