Wie erstelle ich einen CFUUID NSString unter ARC, der nicht leckt?

7

Es gibt ein paar gute Beispiele zu SO über CFUUID, vor allem dieses:

So erstellen Sie eine GUID / UUID mit dem iPhone SDK

Aber es wurde für vor-ARC-Code gemacht, und ich bin (noch) kein CF-Junkie, also kann jemand Beispielcode zur Verfügung stellen, der mit ARC funktioniert?

%Vor%     
TigerCoding 07.05.2012, 03:23
quelle

3 Antworten

23

Sie möchten eine "Bridged-Übertragung":

%Vor%

Der Übergang zum ARC Guide sagt

  

__bridge_transfer oder CFBridgingRelease() verschiebt einen Nicht-Objective-C-Zeiger auf Objective-C und überträgt auch den Besitz an ARC.

Allerdings ! Sie sollten auch Ihre Methode umbenennen. ARC verwendet Methodennamenskonventionen, um über Retain-Zählungen nachzudenken, und Methoden, die mit get in Cocoa beginnen, haben eine spezifische Bedeutung, indem sie einen Puffer übergeben, damit sie mit Daten gefüllt werden. Ein besserer Name wäre buildUUID oder ein anderes Wort, das die Verwendung der UUID beschreibt: pizzaUUID oder bearUUID .

    
Josh Caswell 07.05.2012, 03:33
quelle
5

Angenommen, Sie müssen iOS vor Version 6.0 an dieser Stelle nicht mehr unterstützen, können Sie alle UUID-Dateien von Core Foundation überspringen und tun dies einfach, um ein neues zu erhalten:

%Vor%     
Ben Zotto 18.01.2015 02:15
quelle
0

Einzeiler:

%Vor%     
Rick 03.04.2014 13:44
quelle