Я пытаюсь преобразовать свой старый проект в ARC. У меня есть функция, которая создает UUID,, но, видимо, это больше не поддерживается при использовании ARC:NSMakeCollectable и ARC не работает
NSString *uuid = nil;
CFUUIDRef theUUID = CFUUIDCreate(kCFAllocatorDefault);
if (theUUID) {
uuid = NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, theUUID));
//[uuid autorelease];
CFRelease(theUUID);
}
Я получаю ошибку компиляции (при попытке преобразовать): «NSMakeCollectable» недоступен: не доступен в автоматическом подсчете ссылок Режим.
Так что мой вопрос: как мне создать UUID при использовании ARC? Есть ли другой способ, который я должен использовать?
Это приведет к утечке UUID, поскольку у него есть дополнительный 'CFRetain', прикрепленный к вызову' Create'. –
вы можете использовать CFRelease для выпуска – IPaPa
CFRelease что? Вы назначили его на ARC 'id', который больше не может передаваться непосредственно в CFRelease()'. Вы можете вернуть его обратно, но это борьба с ARC. Это то, что 'CFBridgingRelease()' и эквивалентный '__bridge_transfer' построены для адреса. –