ARC и CF выпускают?

Я немного смущен. Везде япрочитайте, предположите, что при использовании ARC вам все еще нужно выпустить основные базовые объекты, что имеет смысл, ARC неуправлять ими Однако я'у нас есть метод, который использует некоторые методы / объекты CF, которые я использовалCFRelease на, но это привело к падению приложения. Раскомментирую мойCFReleaseS исправляет проблему, но тогда яЯ предполагаю, что яу тебя утечка памяти?

Может кто-нибудь объяснить, какие вещи нужно выпустить, а какие нет?т, или что-нибудь еще, чтоне так с этим кодом?

+ (NSString *) fileExtensionForMimeType:(NSString *)type
{
    CFStringRef mimeType = (__bridge CFStringRef)type;
    CFStringRef uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, mimeType, NULL);
    CFStringRef extension = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassFilenameExtension);

    NSString *ext = (__bridge NSString *)extension;

    // CFRelease(mimeType);
    // CFRelease(uti);
    // CFRelease(extension);

    return ext;
}

Три закомментированыCFRelease звонки решают проблему, как уже упоминалось, но я знаю этоS не так. Что мне делать?

Ответы на вопрос(3)

Ваш ответ на вопрос