Objective-C:strlen返回错误的值

时间:2014-06-20 14:22:45

标签: objective-c cocoa memory-leaks security-framework

所以我正在使用this question中的随机字符串生成解决方案。

然后我将结果保存到钥匙串,除了我得到EXC_BAD_ACCESS(code=EXC_I386_GPFLT),而包含OSStatus的result变量是32767

我做错了什么?我尝试在strlen()characters上运行generatedKey - 它总是返回一些荒谬的数字,以及运行简单的[characters length]。我相信存在问题 - 它应该返回256.

我知道这可能很愚蠢,但我迷失了,谷歌没有帮助。

int len = 256;

NSString *characters = @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
NSMutableString *generatedKey = [NSMutableString stringWithCapacity: len];
for (int i=0; i<len; i++) {
    [generatedKey appendFormat: @"%C", [characters characterAtIndex: arc4random_uniform([characters length]) % [characters length]]];
}

const char *encryptedPass = [generatedKey UTF8String];
OSStatus result = SecKeychainItemCreateFromContent(kSecGenericPasswordItemClass, &list, len, encryptedPass, someKeychain, accessRef, &someKeychainItem);

0 个答案:

没有答案