NSUUID到NSString

时间:2014-02-12 08:50:46

标签: ios objective-c uuid

我需要以NSString格式从手机获取deviceUUID。 现在我有了这个:

NSString *deviceId = [UIDevice currentDevice].identifierForVendor;

因为我以前拥有的是:

NSString *deviceId = [UIDevice currentDevice].uniqueIdentifier;

现在给我一个错误。

但是第一句话,我得到了警报:

Incompatible pointer types initializing 'NSString *' with an expression of type 'NSUUID *'

3 个答案:

答案 0 :(得分:61)

正如错误告诉你的那样,identifierForVendor返回类NSUUID的对象,而不是NSString。

如果你需要NSString,请使用:

NSUUID *identifierForVendor = [[UIDevice currentDevice] identifierForVendor];
NSString *deviceId = [identifierForVendor UUIDString];

答案 1 :(得分:24)

对于任何想要如何将NSUUID转换为NSString

的人

ObjC

NSString *uuid = [[NSUUID UUID] UUIDString];

夫特

NSUUID().UUIDString

Swift 3

UUID().uuidString

答案 2 :(得分:1)

EDITE: 作为 OP的 要求,我重新打开已删除的答案,我在这里提到 @Matthias的答案是正确的,并且通过使用以下代码,每次每次都会获得新的device_id运行此代码。

使用以下代码:

CFUUIDRef uuidRef = CFUUIDCreate(kCFAllocatorDefault);
NSString *uuidString = (NSString *)CFBridgingRelease(CFUUIDCreateString(NULL,uuidRef));
CFRelease(uuidRef);
NSLog(@"%@", uuidString);