为IOS中的所有设备创建唯一UUID?
如何创建相同(唯一)的UUID以及如何将其用于所有IOS设备。在我的代码中,UUID在不同的设备中是不同的 我得到UUID的代码是为IOS中的所有设备创建唯一UUID?,ios,objective-c,ios7,uuid,Ios,Objective C,Ios7,Uuid,如何创建相同(唯一)的UUID以及如何将其用于所有IOS设备。在我的代码中,UUID在不同的设备中是不同的 我得到UUID的代码是 NSString* uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; // IOS 6+ NSLog(@"UUId:: %@", uniqueIdentifier); 谢谢 Shabeer至于获取唯一ID,我非常喜欢以下代码: [[NSProcessI
NSString* uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; // IOS 6+
NSLog(@"UUId:: %@", uniqueIdentifier);
谢谢
Shabeer至于获取唯一ID,我非常喜欢以下代码:
[[NSProcessInfo processInfo] globallyUniqueString]
每次都会使用日期和设备ID生成一个很好的唯一ID。至于通过设备共享,这是不可能的。每个设备都是唯一的,因此您不能期望您的代码找出谁的设备属于谁。如果您确实希望它这样做,那么您可以采用以下三种方法之一:
希望其中一点对你有用 至于获取唯一ID,我非常喜欢以下代码:
[[NSProcessInfo processInfo] globallyUniqueString]
每次都会使用日期和设备ID生成一个很好的唯一ID。至于通过设备共享,这是不可能的。每个设备都是唯一的,因此您不能期望您的代码找出谁的设备属于谁。如果您确实希望它这样做,那么您可以采用以下三种方法之一:
希望其中一点对你有用 此方法将为每个设备创建唯一的字符串。。 这里SGKeyChain是一个keychain包装器。你可以自己写
+ (NSString *) uniqueDeviceIdentifier
{
NSString *deviceUUID = [[SGKeyChain defaultKeyChain] stringForKey:@"uniqueId"];
if (!deviceUUID) {
if (!deviceUUID.length) {
NSString *deviceUUID = @"";
CFUUIDRef uuidRef = CFUUIDCreate(NULL);
CFStringRef uuidStringRef = CFUUIDCreateString(NULL, uuidRef);
CFRelease(uuidRef);
deviceUUID = [NSString stringWithFormat:@"%@",[NSString stringWithString:(__bridge_transfer NSString *)uuidStringRef]];
[[SGKeyChain defaultKeyChain] setObject:deviceUUID forKey:@"uniqueId" accessibleAttribute:kSecAttrAccessibleAlways];
}
}
return deviceUUID;
}
此方法将为每个设备创建唯一的字符串。。 这里SGKeyChain是一个keychain包装器。你可以自己写
+ (NSString *) uniqueDeviceIdentifier
{
NSString *deviceUUID = [[SGKeyChain defaultKeyChain] stringForKey:@"uniqueId"];
if (!deviceUUID) {
if (!deviceUUID.length) {
NSString *deviceUUID = @"";
CFUUIDRef uuidRef = CFUUIDCreate(NULL);
CFStringRef uuidStringRef = CFUUIDCreateString(NULL, uuidRef);
CFRelease(uuidRef);
deviceUUID = [NSString stringWithFormat:@"%@",[NSString stringWithString:(__bridge_transfer NSString *)uuidStringRef]];
[[SGKeyChain defaultKeyChain] setObject:deviceUUID forKey:@"uniqueId" accessibleAttribute:kSecAttrAccessibleAlways];
}
}
return deviceUUID;
}
我认为“唯一”一词说明了一切……对于所有iOS设备来说,唯一UUID是什么意思?请提供更多信息。基于UUID,我需要在两个设备应用程序之间进行一些事务处理。我认为“唯一”一词说明了一切……对于所有iOS设备,唯一UUID是什么意思?请提供更多信息。基于UUID,我需要在两个设备应用程序之间执行一些事务。此密钥需要保存在keychain中才能永久保存,否则每次的id都会不同。此密钥需要保存在keychain中才能永久保存,否则每次的id都会不同。@sabir我工作不多使用蓝牙,但我已经用iBeacons做了很多工作,所以希望这个概念是一样的。检查每个蓝牙设备并将其存储在阵列中。然后逐个检查阵列并检查信号最强的阵列(或者更好,可能有一个距离值,您可以使用它来查看哪个阵列更近,尽管我不能保证)。一旦你有了信号最强的设备,简单地获取UUID并用它做你喜欢的事情@sabir我在蓝牙方面做得不多,但我在iBeacons方面做了很多,所以希望这个概念是一样的。检查每个蓝牙设备并将其存储在阵列中。然后逐个检查阵列并检查信号最强的阵列(或者更好,可能有一个距离值,您可以使用它来查看哪个阵列更近,尽管我不能保证)。一旦你有了信号最强的设备,简单地获取UUID并用它做你喜欢的事情!