kSecRandomDefault не найден? - PullRequest
3 голосов
/ 27 декабря 2011

Я использую CommonCrypto для шифрования в Mac OS 10.7.Разве этот фреймворк не встроен?Когда я генерирую случайные данные:

+ (NSData *)randomDataOfLength:(size_t)length {
NSMutableData *data = [NSMutableData dataWithLength:length];

int result = SecRandomCopyBytes(kSecRandomDefault, 
                                length,
                                data.mutableBytes);
NSAssert(result == 0, @"Unable to generate random bytes: %d",
         errno);

return data;

}

, я получаю сообщение об ошибке использования необъявленного идентификатора kSecRandomDefault, который, как я считаю, объявлен в CommonCrypto.

Спасибо, вся помощь очень ценится.

1 Ответ

11 голосов
/ 27 декабря 2011

Это определено в SecRandom.h.Убедитесь, что вы включили Security framework в свой проект и добавили соответствующий заголовочный файл.Он не включен в заголовки по умолчанию для фреймворка (я не уверен, что это чрезмерный сайт или намеренный).Итак, добавьте следующий импорт в ваш файл реализации:

#import <Security/SecRandom.h>
...