我需要以NSString格式从手机获取deviceUUID。 现在我有了这个:
NSString *deviceId = [UIDevice currentDevice].identifierForVendor;
因为我以前拥有的是:
NSString *deviceId = [UIDevice currentDevice].uniqueIdentifier;
现在给我一个错误。
但是第一句话,我得到了警报:
Incompatible pointer types initializing 'NSString *' with an expression of type 'NSUUID *'
答案 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);