gpt4 book ai didi

macos - NSFileWrapper 支持延迟加载吗?

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

我正在创建一个 NSDocument 包,其中可能包含数百个大文件,因此我不想在打开文档时读取全部内容。

我花了一些时间寻找,但找不到明确的答案。大多数人似乎认为 NSFileWrapper 将所有数据加载到内存中,但有些人指出它不会加载数据,直到您在包装器上调用 -regularFileContents 。 (有关示例,请参阅 Does NSFileWrapper load everything into memory?Objective-C / Cocoa: Uploading Images, Working Memory, And Storage。)

文档并不完全清楚,但是像 NSFileWrapperReadingImmediateNSFileWrapperReadingWithoutMapping 这样的选项似乎表明它并不总是读取所有内容。

我发现 NSFileWrapper 支持增量保存,仅写出已替换的子包装器。所以如果它也支持增量加载就好了。

有明确的答案吗?

最佳答案

NSFileWrapper 默认情况下会延迟加载,除非您指定 NSFileWrapperReadingImmediate 选项。它将避免将文件读入内存,直到有实际请求为止。

作为仅调试辅助工具,您可以通过检查以下内容来查看文件是否已加载:

[wrapper valueForKey:@"_contents"];

从磁盘读取文件后,它会被填充为 NSData

关于macos - NSFileWrapper 支持延迟加载吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15618628/

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