gpt4 book ai didi

iOS:CF 对象泄漏

转载 作者:行者123 更新时间:2023-11-28 22:15:16 28 4
gpt4 key购买 nike

这是我在 ARC 下的代码:

- (NSString*)encodeURL:(NSString *)string
{
NSString *anewString = (__bridge NSString *)(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)string, NULL, CFSTR(":/?#[]@!$ &'()*+,;=\"<>%{}|\\^~`"), CFStringConvertNSStringEncodingToEncoding([self stringEncoding])));
if (anewString) {
return anewString;
}
return @"";
}

我分析了这段代码,xcode 给了我泄漏信息。但我不知道如何修复它。请帮助!提前致谢!

最佳答案

CFURLCreateStringByAddingPercentEscapes() 返回一个 owned 对象(保留计数 +1)。 __bridge 转换将 CF 对象桥接到 Objective-C 但不转移所有权,因此您创建了内存泄漏,因为 ARC 不知道该对象已保留。使用 __bridge_transfer 而不是 _bridge 来转移所有权,以便 Objective-C ARC 可以为您处理。

关于iOS:CF 对象泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21873733/

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