gpt4 book ai didi

ios - 使用 UIActivityViewController 共享文件 URL 时存在内存泄漏

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:29:31 28 4
gpt4 key购买 nike

我曾经写过这样的代码,在使用instruments的时候,发现内存泄露。

            NSURL *filePath = [NSURL fileURLWithPath:path];
UIActivityViewController *vc = [[UIActivityViewController alloc] initWithActivityItems:@[filePath] applicationActivities:nil];
[self presentViewController:vc animated:YES completion:nil];

仪器泄漏

enter image description here

然后,我尝试共享一个 NSString 或 NSURL(不是文件 url)。没有内存泄漏。那么如何共享文件 URL 而不会发生内存泄漏?

            NSURL *path = [NSURL URLWithString:@"https://stackoverflow.com/"];
UIActivityViewController *vc = [[UIActivityViewController alloc] initWithActivityItems:@[path] applicationActivities:nil];
[self presentViewController:vc animated:YES completion:nil];

最佳答案

根据我对 Xcode 分配堆栈的调查,每次我为文件 url 显示 UIActivityViewController 时,它都会泄漏大约 20-50 个包含文件统一标识符的 CFString 对象。例如,当我传递一个 mp3 文件时,它包含 "public.mp3"

我认为创建这些是为了检查哪些已安装的应用程序可以打开文件,哪些不能。

您应该提交错误报告,以便让 Apple 修复它

关于ios - 使用 UIActivityViewController 共享文件 URL 时存在内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50600635/

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