gpt4 book ai didi

cocoa - 如何避免该函数中的内存泄漏?

转载 作者:行者123 更新时间:2023-12-03 17:52:43 25 4
gpt4 key购买 nike

我试图猜测特定文件的 mime 类型,我有以下代码:

- (NSString *)fileMIMEType:(NSString *)file {
CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef)[file pathExtension], NULL);
CFStringRef MIMEType = UTTypeCopyPreferredTagWithClass(UTI, kUTTagClassMIMEType);
CFRelease(UTI);
return (__bridge NSString *)MIMEType;
}

在分析 Xcode (5) 期间,提示存储在“MIMEType”中的对象存在潜在泄漏。

如何重写此实用方法以避免泄漏?

最佳答案

您正在创建一个不受 ARC 管理的 CFStringRef,您需要将该引用的所有权转移给 ARC,以便 ARC 在需要时释放它。为此,您使用 __bridge_transfer,您使用的 __bridge 不会转移所有权,这将导致泄漏。

关于cocoa - 如何避免该函数中的内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21304715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com