Wygląda dobrze dla mnie. To właśnie używam (dostępny jako gist)
- (NSString *)uuidString {
// Returns a UUID
CFUUIDRef uuid = CFUUIDCreate(kCFAllocatorDefault);
NSString *uuidString = (__bridge_transfer NSString *)CFUUIDCreateString(kCFAllocatorDefault, uuid);
CFRelease(uuid);
return uuidString;
}
edytowane dodać
Jeśli jesteś na OS X 10.8 lub iOS 6 można użyć nowego NSUUID klasę do generowania UUID ciąg, bez konieczności przechodzenia do Fundacji Rdzeń:
NSString *uuidString = [[NSUUID UUID] UUIDString];
// Generates: 7E60066C-C7F3-438A-95B1-DDE8634E1072
Ale przede wszystkim, jeśli tylko chcą, aby wygenerować unikalny ciąg znaków dla nazwy pliku lub katalogu można użyć NSProcessInfo
„s globallyUniqueString
metoda jak:
NSString *uuidString = [[NSProcessInfo processInfo] globallyUniqueString];
// generates 56341C6E-35A7-4C97-9C5E-7AC79673EAB2-539-000001F95B327819
To nie jest formalny UUID, ale jest unikatowy dla danej sieci i procesu i jest dobrym wyborem dla wielu przypadków.
+1 dla wskazania [NSProcessInfo globallyUniqueString]. –