Est-il une méthode pour générer un standard 128 bits GUID (UUID) sur Mac?
Est-il construit en fonction équivalente à .NET
Guid.NewGuid();
dans le Cacao?
Mon désir est de produire une chaîne le long de la lignes de 550e8400-e29b-41d4-a716-446655440000
qui représente un identifiant unique.
- Plutôt que de se demander "est-il un équivalent de la fonction toto ()", vous devez expliquer ce que la fonction que vous demandez sur le fait. Mac OS X ne possède pas de "Guid" des objets, il a CFUUIDRef. Long-temps les développeurs Mac peut pas le savoir d'un "Guid" à partir d'un trou dans le sol.
Vous devez vous connecter pour publier un commentaire.
Uuid sont traitées dans la Base de la Fondation, par le CFUUID de la bibliothèque. La fonction que vous cherchez est CFUUIDCreate.
Pour info pour plus de recherches: ils sont le plus souvent connus comme des Uuid, le terme GUID n'est pas utilisé très souvent en dehors du monde Microsoft. Vous pourriez avoir plus de chance avec le terme de recherche.
Code:
Pour une chaîne UUID, la classe suivante de la méthode devrait faire l'affaire:
si vous voulez vraiment les octets (pas la chaîne):
où CFUUIDBytes est un struct de l'UUID octets.
NSUUID
.Au moins sur MacOSX 10.5.x vous pouvez utiliser l'outil de ligne de commande "uuidgen" pour obtenir votre chaîne
par exemple,
$ uuidgen
054209C4-3873-4679-8104-3C18AE780512
il ya aussi une option -hdr avec ce système comand qu'idéalement il génère dans l'en-tête de style
Voir l'homme-page pour plus d'infos.
ou il y a le
uuidgen
outil de ligne de commande.uuidgen
. Au moins, comme de Snow Leopard.genuuid
àuuidgen
.Depuis 10.8 vous pouvez également utiliser: NSString *uuidString = [[NSUUID UUID] UUIDString];
Découvrez la Wikipédia l'article et le Fondement De Base page.
Depuis 10.3 ou alors, vous pouvez utiliser
[[NSProcessInfo processInfo] globallyUniqueString]
. Cependant, bien que cette actuellement génère un UUID, il n'a jamais été et n'est toujours pas garanti pour le faire, donc si vous avez vraiment besoin d'un UUID et pas n'importe quelle chaîne unique, vous devez utiliser CFUUID.