Hay una construida en función equivalente a la de .NET

Guid.NewGuid();

de Cacao?

Mi deseo es producir una cadena a lo largo de las líneas de 550e8400-e29b-41d4-a716-446655440000 que representa un identificador único.

  • En lugar de preguntar «¿hay una función equivalente a foo()» se debe explicar cuál es la función que usted está preguntando acerca de qué. Mac OS X no tiene «Guid» objetos», ha CFUUIDRef. Largo tiempo los desarrolladores para Mac no podría saber un «Guid» de un agujero en el suelo.

7 Comentarios

  1. 42

    Uuid se manejan en el Núcleo central de la Fundación, por el CFUUID de la biblioteca. La función que se busca es la CFUUIDCreate.

    FYI para más búsquedas: estos son los más comúnmente conocido como Uuid, el término GUID no se utiliza muy a menudo fuera de el mundo de Microsoft. Usted podría tener más suerte con el término de búsqueda.

  2. 32

    Código:

    Para una cadena UUID, el siguiente método de la clase debe hacer el truco:

    +(NSString*)UUIDString {
        CFUUIDRef theUUID = CFUUIDCreate(NULL);
        CFStringRef string = CFUUIDCreateString(NULL, theUUID);
        CFRelease(theUUID);
        return [(NSString *)string autorelease];
    }

    si usted realmente desea la bytes (no cadena):

    +(CFUUIDBytes)UUIDBytes {
        CFUUIDRef theUUID = CFUUIDCreate(NULL);
        CFUUIDBytes bytes = CFUUIDGetUUIDBytes(theUUID);
        CFRelease(theUUID);
        return bytes;
    }

    donde CFUUIDBytes es un struct de la UUID bytes.

    • Técnicamente, que es el Núcleo de la Fundación de la API, que está escrito en C. Cacao está escrito en Objective C y es mucho más concisa (la mayoría del tiempo).
    • Véase la respuesta de David a continuación (stackoverflow.com/a/22093094/1172352) de una manera más simple de hacer esto en 10.8+, usando sólo NSUUID.
  3. 27

    Al menos en MacOSX 10.5.x puede utilizar la herramienta de línea de comandos «uuidgen» para obtener su cadena de
    por ejemplo,

    $ uuidgen

    054209C4-3873-4679-8104-3C18AE780512

    también hay una opción de hdr con este sistema comand que convenientemente se genera en la cabecera de estilo

    Ver el hombre de la página para más información.

    • Esto todavía funciona como el de Mac OS X 10.7 «Lion»
    • Lo que precisamente no OP quería, pero igual de útil (y Google me trajo aquí cuando la búsqueda de la línea de comandos UUID de la generación en los Mac). También: confirmado todavía trabajando en Mac OS X 10.9 «Mavericks»
  4. 13

    o no la uuidgen herramienta de línea de comandos.

    • Al parecer que la utilidad ha sido renombrado uuidgen. Al menos, como de Snow Leopard.
    • Gracias! Acabo de actualizar desde genuuid a uuidgen.

Dejar respuesta

Please enter your comment!
Please enter your name here