gpt4 book ai didi

ios - 在 ARC 中正确使用 CFStringTokenizerCreate?

转载 作者:行者123 更新时间:2023-11-28 23:01:56 24 4
gpt4 key购买 nike

我有一段代码,ARC 转换器变成了这个......

// firstRange is a NSRange obviously
// test is an NSString * passed in as parameter to the method
NSRange range = NSMakeRange(firstRange.location, (lastRange.location - firstRange.location) + lastRange.length);
NSString *sentence = [text substringWithRange:range];
// OK, now chop it up with the better parser
CFRange allTextRange = CFRangeMake(0, [sentence length]);
CFLocaleRef locale = CFLocaleCopyCurrent();
CFStringTokenizerRef tokenizer = CFStringTokenizerCreate(kCFAllocatorDefault,
(__bridge CFStringRef) sentence,
allTextRange,
kCFStringTokenizerUnitWord,
locale);

我称其为 A LOT,我怀疑它以某种方式泄漏。 CFStringTokenizerCreate 调用符合犹太洁食标准吗?我特别怀疑 __bridge 调用。我是否创建了一个我必须手动释放的中间体或一些类似的邪恶?

最佳答案

您需要CFRelease tokenizerlocale 否则它们会泄漏。

这属于 Core Foundation Ownership Policy与 ARC 无关。

__bridge 转换告诉 ARC 在 CFStringTokenizerCreate 调用中没有为 sentence 完成所有权转移。这样就可以了。

您可以使用 Xcode 的静态分析器和分析器测试内存泄漏。

关于ios - 在 ARC 中正确使用 CFStringTokenizerCreate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9852251/

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