Estoy intentando convertir mi antiguo proyecto a ARC. Tengo una función que crea UUID, pero parece que esto ya no se admite cuando se utiliza ARC:NSMakeCollectable y ARC no funciona
NSString *uuid = nil;
CFUUIDRef theUUID = CFUUIDCreate(kCFAllocatorDefault);
if (theUUID) {
uuid = NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, theUUID));
//[uuid autorelease];
CFRelease(theUUID);
}
consigo el error del compilador (al intentar convertir): 'NSMakeCollectable' no está disponible: No disponible en el recuento de referencias automática modo.
Entonces mi pregunta es: ¿cómo creo UUID cuando uso ARC? ¿Hay alguna otra manera que ahora debería usar?
Esto perderá UUID ya que tiene un 'CFRetain' extra adjunto a la llamada' Create'. –
puede usar CFRelease para liberar – IPaPa
CF¿Por qué? Lo has asignado a un 'id' de ARC, que ya no se puede entregar directamente a' CFRelease() '. Podrías lanzarlo de nuevo, pero eso es luchar contra ARC. Esto es a lo que 'CFBridgingRelease()' y su equivalente '__bridge_transfer' están diseñados para abordar. –