我正在尝试猜测特定文件的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”中的对象存在潜在泄漏。
如何重写此实用程序方法以避免泄漏?
您要创建的CFStringRef
内容不受ARC的管理,您需要将该引用的所有权转让给ARC,以便在需要时将其释放。为此__bridge_transfer
,__bridge
您所使用的不会转让所有权,这会导致泄漏。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句