Có vẻ ổn với tôi. Đây là những gì tôi sử dụng (có sẵn như là một gist)
- (NSString *)uuidString {
// Returns a UUID
CFUUIDRef uuid = CFUUIDCreate(kCFAllocatorDefault);
NSString *uuidString = (__bridge_transfer NSString *)CFUUIDCreateString(kCFAllocatorDefault, uuid);
CFRelease(uuid);
return uuidString;
}
Edited để thêm
Nếu bạn đang trên OS X 10.8 hoặc iOS 6 bạn có thể sử dụng lớp mới NSUUID để tạo ra một UUID chuỗi, mà không cần phải đi đến Core Foundation:
NSString *uuidString = [[NSUUID UUID] UUIDString];
// Generates: 7E60066C-C7F3-438A-95B1-DDE8634E1072
Nhưng hầu hết, nếu bạn chỉ muốn tạo ra một chuỗi duy nhất cho một tập tin hoặc thư mục tên sau đó bạn có thể sử dụng NSProcessInfo
's globallyUniqueString
phương pháp như:
NSString *uuidString = [[NSProcessInfo processInfo] globallyUniqueString];
// generates 56341C6E-35A7-4C97-9C5E-7AC79673EAB2-539-000001F95B327819
Nó không phải là một UUID chính thức, nhưng nó là duy nhất cho mạng của bạn và quá trình của bạn và là một lựa chọn tốt cho nhiều trường hợp.
+1 cho chỉ báo [NSProcessInfo globalUniqueString] đó. –