所以我正在使用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);