Istnieje kilka dobrych przykładów na SO o CFUUID, zwłaszcza ten:Jak utworzyć CFUUID NSString pod ARC, który nie wycieka?
How to create a GUID/UUID using the iPhone SDK
Ale to było robione dla pre-ARC kodu i nie jestem ćpunem CF (jeszcze), więc można ktoś podać przykład kodu, który działa z ARC?
+ (NSString *)GetUUID
{
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return [(NSString *)string autorelease];
}
Dzięki Jacques, myślałem, że to __bridge, ale nie byłem pewien. Nadal nie jestem pewien, w jaki sposób cykle zatrzymania pracują z CF, ale do tego dojdzie jeszcze jeden z tych dni. – TigerCoding
Szybkie wyszukiwanie ciągu za pomocą podanego linku pokazuje, że nie możemy użyć słowa "nowy", ale nie widziałem nic o używaniu słowa "get". Czy myliłeś tych dwóch, czy też coś przegapiłem? – TigerCoding
Przyznaję, że nie jestem w 100% pewny, że 'get' powoduje problemy z ARC (miałem zamiar to przeanalizować), ale jest to bardzo długa konwencja nazewnictwa w Cocoa. Zobacz '- [NSArray getObjects: range:]', '- [NSString getCharacters: range:]' i inne. –