0

我正在尝试使用不推荐使用 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 不应该相同吗?我在这里做错了什么?

谢谢 :)

4

1 回答 1

1

你必须把它保存到你的NSUserDefaults

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setValue:UUID forKey:@"UUID"];

并在您的应用程序每次启动时检查它是否已经存在。

if([defaults objectForKey:@"UUID"]){...}
于 2012-08-16T15:04:26.673 回答