- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
假设我有一个 NSFileWrapper
目录。该目录由几级目录和文件组成。有些文件很大。这些文件是全部加载到内存中,还是延迟加载?
如果它们被加载到内存中,是否有任何替代 NSFileWrapper
的替代品具有类似的功能,不会将文件加载到内存中?我可以挂接到 UIDocument
中的东西吗?
这是基于文档的应用程序,它使用与 iCloud 同步的 UIDocument
。文档中可以嵌入图像和视频。每个图像/视频都有一个显示在 HTML 文档中的预览图像(缩略图)。全尺寸图像或视频不应加载到内存中,而应按需加载。
我还需要一种方法来添加资源而不将其加载到内存中。像“initWithAsset:(ALAsset *)”这样的东西是理想的。
最佳答案
我不久前制作了一个生成视频的应用程序。然后使用 UIDocument 子类将该视频保存为特定文件格式。
使应用程序在执行 contentsForType:error:
时不会耗尽内存的唯一方法是将视频输出到 tmp 目录中的文件,并使用视频的 url 初始化 filewrapper使用 NSFileWrapperReadingWithoutMapping
-option 来防止它加载视频到内存并只复制文件。
- (id)contentsForType:(NSString *)typeName error:(NSError **)outError {
if (self.fileWrapper == nil) {
self.fileWrapper = [[NSFileWrapper alloc] initDirectoryWithFileWrappers:nil];
}
if (self.videoURL != nil) {
NSError *fileReadError;
NSFileWrapper *videoFileWrapper = [[NSFileWrapper alloc] initWithURL:self.videoURL options:NSFileWrapperReadingWithoutMapping error:&fileReadError];
if(fileReadError){
NSLog(@"File read error: %@", [fileReadError localizedDescription]);
}else {
[videoFileWrapper setPreferredFilename:@"video.mov"];
[self.fileWrapper addFileWrapper:videoFileWrapper];
}
}
//...
}
关于ios - NSFileWrapper 是否将所有内容加载到内存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13621502/
我们正在将一个包含大量跨平台代码的应用程序移植到 Cocoa。必须使用直接对磁盘上的文件进行加载/保存的低级文件处理例程。 由于 NSFileWrapper 旨在通过 NSData 呈现内存中文件的内
我正在创建一个 NSDocument 包,其中可能包含数百个大文件,因此我不想在打开文档时读取全部内容。 我花了一些时间寻找,但找不到明确的答案。大多数人似乎认为 NSFileWrapper 将所有数
假设我有一个 NSFileWrapper 目录。该目录由几级目录和文件组成。有些文件很大。这些文件是全部加载到内存中,还是延迟加载? 如果它们被加载到内存中,是否有任何替代 NSFileWrapper
我有一个 NSFileWrapper 目录,我想在其中更新某个 FileWrapper。我想知道最好的方法是什么? 到目前为止,我已经使用了这段代码: [self.fileWrapper addReg
我有一个 UIDocument,我希望它由 (1) 一个 txt 文件和 (2) 几个 jpg 图像组成。我将 txt 和所有 jpg 放入 NSFileWrapper 中。 当我加载 UIDocum
我正在使用 NSFileWrapper 作为我的包文档。有时,当我请求包内文件的数据时,我得到nil。 这是我查询包内文件数据的方法: - (NSData*) dataOfFile(NSString*
我有一个应用程序正在使用 NSFileWrapper 创建用户数据的备份。此备份文件包含文本和媒体文件(此处与压缩无关)。有时这些备份文件会变得非常大,超过 200 MB。当我调用 NSFileWra
我们最近将代码转换为使用 UIDocument 而不是直接在文件系统上操作文件,因此我们遇到了一些性能问题。我们想知道我们是否错误地使用了这个类,是否有其他人遇到过这些问题,以及解决这些问题的常用方法
我想让我的应用程序文件系统保留其中每个文件的元数据,但也支持在用户端创建目录。我看过 NSFileWrapper 但它似乎将带有元数据的文件保存为目录。这是有道理的,但是现在我如何区分实际目录和 NS
我有一个基于 NSDocument 的应用程序,它使用文件包装器来保存和加载其数据。文档可以有各种资源,所以我不想把所有东西都加载到内存中。我可能在做一些根本性的错误,但是一旦我更改了一个(内部)文件
给定一个 NSFileWrapper 对象(用于文件或目录),是否有任何方法可以获取磁盘上实际文件位置的完整路径? [fileWrapper filename] 只返回文件名,而不是路径,所以这不是我
我正在制作一个基于文档的 Cocoa 应用程序,其中文档是动态文件的集合(用户可以添加或删除文件)。特别是,保存和打开操作应尽可能快。 如果我正确理解文档,我应该使用 NSFileWrapper并实现
我在将 NSFileWrapper 文档与 iCloud 同步时遇到问题。我能够创建我的包装器并将其保存到我无处不在的容器中。 当我尝试从创建它的设备读取它时,它起作用了。当我尝试从另一台从 iClo
很抱歉,如果这很明显,但我正在为如何从 NSFileWrapper 和 docs were not particular enlightening. 中提取组件而苦苦挣扎。 我有两个包装器。一个包含一
如何播放给定 NSFileWrapper 的电影? 我希望在 MPMoviePlayerController 中找到一个 initWithData: 构造函数(如 AVAudioPlayer ),但只
我正在查看 NSFileWrapper 类,它在 iOS 上将许多文件组合成一个逻辑文件。 ( demo ) 其他平台如何与这种格式互动?通过电子邮件/http 发送此文档类型时会发生什么情况? 最佳
NSFileWrapper 的 serializedRepresentation 在导入 Cocoa 框架时返回不适当的大数据,而不仅仅是导入 Foundation 框架。我怎样才能阻止 serial
我有一个基于 UIDocument 的应用程序,它使用 NSFileWrapper 来存储数据。 “主”文件包装器包含许多其他目录文件包装器,每个包装器代表文档的不同页面。 每当我在保存 UIDocu
我有一个基于 UIDocument 的应用程序,它使用 NSFileWrapper 来存储数据。 “主”文件包装器包含许多其他目录文件包装器,每个包装器代表文档的不同页面。 当保存一个只有一小部分页面
我有以下 Objective-C 代码: NSFileWrapper* fileWrapper; NSMutableDictionary* wrappers = [NSMutableDictionar
我是一名优秀的程序员,十分优秀!