我正在尝试使用UUID弃用方法的替代方法将我的唯一密钥存储在钥匙串中,以便我可以使用它来访问我的在线数据库。
我这样做:
CFUUIDRef uuid = CFUUIDCreate(NULL);
CFStringRef generatedUUIDString = CFUUIDCreateString(NULL, uuid);
CFRelease(uuid);
NSString* hashKey = [(NSString*)generatedUUIDString autorelease];
KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyGAME" accessGroup:nil];
[keychainItem setObject:hashKey forKey:(id)kSecValueData];
NSLog(@"%@", [keychainItem objectForKey:(id)kSecValueData]);
[keychainItem release];
但是当我从钥匙串中检索我的钥匙时,它每次都会返回新值。我正在使用KeychainItemWrapper。每次调用下面的方法时,hashkey都不应该相同吗?我在这里做错了什么?。
谢谢:)
答案 0 :(得分:1)
您必须将其保存到NSUserDefaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setValue:UUID forKey:@"UUID"];
每次你的应用开始时检查它是否已经存在。
if([defaults objectForKey:@"UUID"]){...}