所以我使用这个问题的随机字符串生成解决方案。
然后我将结果保存到钥匙串,除了我得到EXC_BAD_ACCESS(code=EXC_I386_GPFLT)
,并且result
包含 OSStatus 的变量是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);