web-dev-qa-db-ja.com

NSUUIDからNSString

電話からNSString形式でdeviceUUIDを取得する必要があります。今私はこれを持っています:

NSString *deviceId = [UIDevice currentDevice].identifierForVendor;

私が以前持っていたものだから、それは:

NSString *deviceId = [UIDevice currentDevice].uniqueIdentifier;

エラーが発生しました。

しかし、最初の文で、私は警告を受けました:

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

エラーが示すように、 identifierForVendor はNSStringではなく、クラス NSUUID のオブジェクトを返します。

NSStringが必要な場合は、これを使用します。

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

NSUUIDをNSStringに変換する方法をお探しの方

ObjC

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

Swift

NSUUID().UUIDString

スウィフト3

UUID().uuidString
24
onmyway133

EDITE: As OP's要件削除した回答を再度開き、ここで言及します@ Matthias's正解です。次のコードを使用すると、このコードを実行するたびに新しいdevice_idが取得されます。

次のコードを使用します。

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