为iOS设备创建唯一标识符?

Mat*_*eus 5 c++ iphone random ios

可以使用Xcode发现iOS设备标识符.我需要下载的每个应用都有一个唯一的标识符.我想在生成随机数,但它们可能会多次生成相同的数字!有人有想法吗?

Mat*_*eus 4

我找到了一个非常简单的方法来做到这一点,具体方法如下:

COMMAND+N并选择Cocoa Touch Class

为您的班级命名NSString+UUID并点击下一步。

然后,将代码替换为NSString+UUID.h

@interface NSString (UUID)

+ (NSString *)uuid;

@end
Run Code Online (Sandbox Code Playgroud)

NSString+UUID.m与:

@implementation NSString (UUID)

+ (NSString *)uuid {
    NSString *uuidString = nil;
    CFUUIDRef uuid = CFUUIDCreate(NULL);
    if (uuid) {
        uuidString = (NSString *)CFUUIDCreateString(NULL, uuid);
        CFRelease(uuid);
    }
    return [uuidString autorelease];
}

@end
Run Code Online (Sandbox Code Playgroud)

现在,当您需要获取 UUID 时(即:在应用程序加载时使用 NSUserDefaults 存储它):

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

    NSString *userIdentifierKey = @"user-identifier"
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    if ([defaults objectForKey:userIdentifierKey] == nil) {

        NSString *theUUID = [NSString uuid];

        [defaults setObject:theUUID forKey:userIdentifierKey];
        [defaults synchronize];

    }

    // additional application setup...

    return YES;
}
Run Code Online (Sandbox Code Playgroud)