2012-03-21 15 views
5

私は初心者のiPhoneアプリの開発者で、IBActionボタンを使ってラベルにiPhoneまたはApp固有の識別子を表示しようとしています。私はちょっと調べて、コードのいくつかが廃止され、代わりにCFUUIDが使用されていることを知っています。以下のコードは私が使用したものです。ただし、IBActionボタンを押すたびに、UUIDが変更されます。私は間違って何をしていますか?CFUUID UUIDを常に変更する

CFUUIDRef udid = CFUUIDCreate(NULL); 

NSString *udidString = (NSString *) CFUUIDCreateString(NULL, udid); 

uuid.text= udidString; 

答えて

5

あなたはしかし、この方法は

[[UIDevice currentDevice] uniqueIdentifier] 

を減価償却されるを使用することができます。各デバイスの固有の識別子を取得するには、引き続きCFUUIDCreateStringを使用して、出力をユーザーのデフォルト値に保存します。アプリが実行されるたびにこの値を読み込みます。アプリを削除してから再インストールすると、この値は異なります。

アプリのインストールで一意の識別子が必要な場合は、ネットワークのMACアドレスを使用できます。

+6

それをキーチェーンに保存しておけば、アプリの削除/再インストール後も生き残ることができます:)。 – DougW

+0

Appleはしばらく前にネットワークMACアドレスを壊しました。 – LightningStryk

8

は、私はあなたがそのdocumentationを理解するだろう読んで、CFUUIDCreate()の目的を誤解していると思います。

私は、APIが目的を正しく提供していると思います。普遍的なユニークな識別子を作成することは、あなたがこれを呼び出すたびにユニークな識別子をランダムに返すことを意味します。

+0

アプリの定数識別子を取得する別の方法はありますか? – wakaka

+1

1つを保存してそのようにする – Sneakyness

4

CFUUIDCreateは、実行するたびに別のUUIDを作成することを意図しています。あなたが好きな場合は、あなたが作成したり、あなたのアプリに格納することができます。https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5のようなものを試すことができます - 基本的に、MACアドレスのMD5ハッシュをベースにしてUIDeviceにuniqueGlobalDeviceIdentifier関数を提供します。

[[UIDevice currentDevice] uniqueGlobalDeviceIdentifier] 
関連する問題