如何将NSUUID转换为NSData

row*_*man 11 uuid objective-c nsdata nsuuid

我需要NSDatavendorIdentifier没有转化为NSString清晰的字节.如何转换NSUUID使用getUUIDBytes:NSData

row*_*man 20

NSUUID *vendorIdentifier = [[UIDevice currentDevice] identifierForVendor];
uuid_t uuid;
[vendorIdentifier getUUIDBytes:uuid];

NSData *vendorData = [NSData dataWithBytes:uuid length:16];
Run Code Online (Sandbox Code Playgroud)


Cha*_*der 7

使用它来获取vendorIdentifieras Data(Swift 4):

var uuidBytes = UIDevice.current.identifierForVendor!.uuid
let uuidData = NSData(bytes: &uuidBytes, length: 16) as Data
Run Code Online (Sandbox Code Playgroud)

请记住,UIDevice.current.identifierForVendor文档所述,防止为零.


原始答案(Swift 2版):

var uuidBytes: [UInt8] = [UInt8](count: 16, repeatedValue: 0)
UIDevice.currentDevice().identifierForVendor!.getUUIDBytes(&uuidBytes)
let uuidData = NSData(bytes: &uuidBytes, length: 16)
Run Code Online (Sandbox Code Playgroud)