トップ «前の日記(2012-07-30) 最新 次の日記(2012-08-08)» 編集

Cocoa練習帳

iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど

2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|

2012-08-04 [iOS]ユニークID

外部サービスと通信する際、アプリケーションがインストールされているiOS機器を区別できるユニークな識別子が必要になる事があると思うが、iOS 5より以前では、以下のコードでiOS機器毎にユニークなIDを取得できる。

NSString    *uniqueID = [[UIDevice currentDevice] uniqueIdentifier];
NSLog(@"UDID: %@", uniqueID);

iOS5からは、この方法は推奨されなくなった。そこで、多くの場合、以下の様なコードでユニークなIDを取得している。

- (NSString *)createUUID
{
    CFUUIDRef   uuid = CFUUIDCreate(NULL);
    NSString    *uuidString = (__bridge_transfer NSString *)CFUUIDCreateString(NULL, uuid);
    CFRelease(uuid);
    return uuidString;
}

ただし、このメソッドは呼ばれる度にユニークなIDを返す。その為、そのiOS機器にインストールされたアプリケーションという単位でユニークな識別子が欲しい場合は、この値をキーチェインに保存して、キーチェインに存在していたらそれを理由するという方法が、よく行われていると思う。

_ 関連情報

CFUUID Reference

_ 【Cocoa練習帳】

http://www.bitz.co.jp/weblog/
http://ameblo.jp/bitz/(ミラー・サイト)

トップ «前の日記(2012-07-30) 最新 次の日記(2012-08-08)» 編集