3

Mac OS 10.7 で暗号化に CommonCrypto を使用しています。このフレームワークは組み込まれていませんか?ランダムデータを生成している場合:

+ (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;

}

CommonCrypto で宣言されていると思われる、宣言されていない識別子 kSecRandomDefault の使用エラーが発生します。

ありがとう、すべての助けは大歓迎です。

4

1 に答える 1

11

で定義されていSecRandom.hます。プロジェクトにフレームワークが含まれていることを確認しSecurity、適切なヘッダーファイルを追加します。フレームワークのデフォルトヘッダーには含まれていません(それがオーバーサイトなのか意図的なものなのかはわかりません)。したがって、実装ファイルに次のインポートを追加します。

#import <Security/SecRandom.h>
于 2011-12-26T21:22:29.227 に答える