2012-03-21 15 views
5

Soy un desarrollador de aplicaciones de iPhone para principiantes y estoy tratando de mostrar el identificador único de iPhone o aplicación en una etiqueta a través de un botón IBAction. Investigué un poco y sé que parte del código ha quedado en desuso y CFUUID se usa en su lugar. El código a continuación es lo que utilicé. Sin embargo, cada vez que toco el botón IBAction, el UUID cambia. ¿Qué estoy haciendo mal?CFUUIDCreate UUID cambia constantemente

CFUUIDRef udid = CFUUIDCreate(NULL); 

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

uuid.text= udidString; 

Respuesta

5

Puede utilizar

[[UIDevice currentDevice] uniqueIdentifier] 

Sin embargo, se deprecia este método. Para obtener un identificador único para cada dispositivo, aún puede usar CFUUIDCreateString y guardar los resultados en los valores predeterminados del usuario. Cargue este valor cada vez que se ejecuta la aplicación. Si la aplicación se elimina y luego se vuelve a instalar, este valor será diferente.

Si necesita un identificador único en las instalaciones de la aplicación, puede usar la dirección MAC de la red.

+6

Guárdelo en el llavero y sobrevivirá a la eliminación/reinstalación de la aplicación :). – DougW

+0

Apple rompió la dirección MAC de red hace algún tiempo. – LightningStryk

8

creo que haya entendido mal el propósito de CFUUIDCreate(), lea el documentation vas a entender.

Supongo que la API está cumpliendo su propósito correctamente, que es crear identificador único universal significa que cada vez que lo llame, le devolverá el identificador único al azar.

+0

¿Hay otra forma de obtener un identificador constante para una aplicación? – wakaka

+1

Guarde uno y configúrelo como tal – Sneakyness

4

Como se mencionó anteriormente, CFUUIDCreate está destinado a crear un UUID diferente cada vez que se ejecuta. Puede crear una y almacenarla en su aplicación si lo desea, o puede intentar algo como https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5; básicamente, proporciona una función única Global Device Iddentifier en el UIDevice, utilizando como base un hash MD5 de la dirección MAC.

[[UIDevice currentDevice] uniqueGlobalDeviceIdentifier]