30 Aralık 2011, Cuma
ARC ile UUID bir dize oluşturmak etkin
ARC ile bazı kod UUID bir dize etkin oluşturmanı istiyorum.
Biraz araştırma yaptıktan sonra bu ben ile geldi budur:
CFUUIDRef uuid = CFUUIDCreate(NULL);
NSString *uuidStr = (__bridge_transfer NSString *)CFUUIDCreateString(NULL, uuid);
CFRelease(uuid);
Düzgün __bridge_transfer
ARK altında herhangi bir nesne sızmasını önlemek için kullanıyor muyum?
CEVAP
6 Mayıs 2012, Pazar
Bana iyi göründü. Bu ne kullanın (gist kullanılabilir)
- (NSString *)uuidString {
// Returns a UUID
CFUUIDRef uuid = CFUUIDCreate(kCFAllocatorDefault);
NSString *uuidString = (__bridge_transfer NSString *)CFUUIDCreateString(kCFAllocatorDefault, uuid);
CFRelease(uuid);
return uuidString;
}
Eklemek için düzenlenebilir
OS X 10.8 veya iOS 6 NSUUID yeni sınıf dizesi bir UUID oluşturmak için, Temel için gitmek zorunda kalmadan kullanabilirsiniz:
NSString *uuidString = [[NSUUID UUID] UUIDString];
// Generates: 7E60066C-C7F3-438A-95B1-DDE8634E1072
Ama çoğunlukla, eğer sadece bir dosya veya dizin adı için benzersiz bir dize oluşturmak için NSProcessInfo
'globallyUniqueString
s yöntemi gibi kullanabilirsiniz
NSString *uuidString = [[NSProcessInfo processInfo] globallyUniqueString];
// generates 56341C6E-35A7-4C97-9C5E-7AC79673EAB2-539-000001F95B327819
Resmi bir UUID değil, ama ağ ve süreç için eşsiz ve pek çok vaka için iyi bir seçimdir.
Bunu Paylaş:
JavaScript GUID / UUID oluşturmak?...
Nasıl alfa-sayısal rasgele bir dize ol...
Nasıl bir dosyanın içeriğini bir Java ...
Nasıl en iyi Ruby rastgele bir dize ol...
IList virgülle ayrılmış listesi oluştu...