问题标签 [nsfilewrapper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3193 浏览

persistence - 使用 iCloud 共享 plist 文件

我有一个相对简单的应用程序,它将数据保存到位于文档文件夹中的 plist 文件中。数据在启动时加载到 UITableView 中。然后,用户可以编辑、删除或添加记录,任何更改都会保存回 plist 文件。

现在我想在使用 iCloud 的设备之间共享这些数据(plist 文件)。我查看了文档,我的理解是我需要创建一个 UIDocument 来“管理” plist 文件。

我看过几个 iCloud 教程,但是它们都在 UIDocument 类的属性中存储了一个简单的字符串,而不是整个文件(如 plist)。

如何使用 UIDocument 对象将我的 plist 文件(或任何其他文件)共享到 iCloud?

我会将 plist 文件内容转换为 NSData,然后将其保存在 UIDocument 的属性中吗?我应该改用使用 NsFileWrapper 吗?

我似乎很难理解 UIDocument/iCloud 的安排。我可能让这件事变得更复杂了。

0 投票
3 回答
2989 浏览

iphone - 获取 NSFileWrapper 的路径

给定一个 NSFileWrapper 对象(对于文件或目录),有没有办法获取磁盘上实际文件位置的完整路径?

[fileWrapper filename]只返回文件名,而不是路径,所以它不是我要找的。

0 投票
1 回答
757 浏览

ios - App reporting inaccurate Usage / Storage

One of my apps will, very occasionally, report its Storage (via Settings -> General -> Usage -> Storage) as 4GB when, in reality, the total size of all files in the app's Sandbox (Documents, Library, tmp) averages around 10MB or so.

I'm kind of at my wits end and wondering if anyone has experienced anything like this. I have a sneaking suspicion that it is something related to UIDocument, but can't be certain. It seems like too little to go on right now to file a radar.

In some instances the app will compel the system to present a dialog warning the user that the system is running low on storage. When this happens it seems the system reconciles the difference between the storage it thinks the app is using and reality and the storage numbers will then drop back down to 10MB or so.

It's really odd.

Any ideas on things I might look at would be appreciated.

The implementation of contentsForType:error:

0 投票
1 回答
2288 浏览

cocoa - 从 NSAttributedString 中的 nsfilewrapper / nstextattachment 获取文件名和路径

我有一个基本的 NSTextView 启用了富文本和图形(在 IB 中)。我想得到的是拖入的任何图像的路径和文件名,这样我就可以将它们传递给另一个类。

我是 NSAttributedString 的新手,但我有一个循环使用enumerateAttributesInRange:options:usingBlock:寻找NSAttachmentAttributeName,这一切都很好。但更深入地讲,我进入了 fileWrapper 类,显然无法给我 item 的路径

我将如何获取 NSTextAttachment 的名称和路径?

相关:有没有更简单的方法来获取它们然后逐步遍历属性?

非常感谢!

0 投票
3 回答
1520 浏览

core-data - 我应该在 UIManagedDocument 中使用 NSFileWrappers 吗?

我正在尝试将一个 plist 和几个二进制文件(比如说图像)存储为 UIManagedDocument 的一部分。二进制文件的名称是 Core Data 中的一个属性,我不需要枚举它们,只需在显示相关实体时访问正确的名称即可。

我想要的文件结构是:

到目前为止,我已成功按照如何将其他内容保存到我的 UIManagedDocument 文件包中的说明进行操作?,但是当我尝试添加二进制文件时,有些事情我不知道该怎么做。

  1. 我是否应该将 URL /the/path/File yyyyMMdd-HHmmss.extdoc/ AdditionalContent(readAdditionalContentFromURL:error: 提供的默认内容)视为 NSFileWrapper?与仅使用 URL 相比,有什么优点/缺点吗?我发现使用文件包装器更复杂,因为必须使用文件包装器访问器和 NSCoder(我猜)和文件来读取 plist,我必须存储图像目录的文件包装器,然后获取相应的带有 objectForKey 的节点(我假设)。但 Apple 的 iOS 文档基于文档的应用程序编程指南关于自定义格式而不是 NSData 或 NSFileWrapper 指出“请记住,您的代码将不得不复制 UIDocument 为您所做的工作,因此您必须处理更大的复杂性和更大的错误可能性。“我是不是误会了?
  2. 每个文档的默认值被声明为属性:setter 修改映射 plist 的 NSDictionary 并将文档标记为已更新,getter 使用正确的键访问字典。如何公开读取/写入二进制文件的能力?我应该向 UIManagedDocument 的子类添加方法吗?- (void)writeImage:(NSString*)uuid; 和 -(UIImage *)readImage:(NSString *)uuid; 我是否应该将这些数据保存在内存中,直到文档被保存?如何?
  3. 假设 NSFileWrapper 是要走的路,如果我打算将此文档与 iCloud 一起使用,我应该将文件协调器与文件包装器一起使用吗?如果是这样,怎么做?

每个问题的任何源代码将不胜感激。谢谢你。

PS:我知道我可以在 Core Data 中保存一些二进制数据,但我对那个解决方案感到不舒服。除其他原因外,如果我想创建桌面应用程序,我宁愿将 PNG 数据存储为 UIImage 的序列化版本与 NSImage 不兼容的图像文件。

0 投票
3 回答
1994 浏览

ios - iCloud & NSFileWrapper: Showing as 2 different files in Settings

I have an app that uses a UIDocument that is NSFileWrapper based. My file wrapper is a directory named "XXX.cp", with two sub-files "photo.data" and "photo.metadata". It seems to save and load documents fine, however when I go to Settings\Manage Storage\Unknown the sub-files are listed separately:

Settings

I was expecting it to show "XXX.cp" instead of these two sub-files. I think I have the document UTI set up and exported properly:

UTI UTI Export

And I think I am creating the file wrappers correctly (especially since it reads/writes fine):

#xA;

But still no cigar. Anyone know what the problem is? Thanks!

0 投票
1 回答
2804 浏览

iphone - UIDocument、NSFileWrapper 和图像

我有一个 UIDocument,我希望它由(1)一个 txt 文件和(2)几个 jpg 图像组成。我将 txt 和所有 jpg 文件放入 NSFileWrapper。

当我加载 UIDocument 时,我很快就需要 txt 文件中的信息,所以我先加载它并忽略所有图像,直到我真正需要它们。

虽然我知道如何延迟加载图像,但我不确定如何“延迟”保存图像(尤其是在使用 iCloud 时,我不希望文件被不必要地上传/下载)。假设我已经加载了所有图像并且没有更改它们。然后我想保存 UIDocument,忽略所有图像(因为它们没有改变),但想保存文本,因为它确实改变了。

我将如何实现这一目标?甚至可能吗?还是自动完成?或者我是否应该不将图像放在我的 UIDocument 中,让每个图像由不同的 UIDocument 处理?恐怕这对我来说有点混乱。

到目前为止,这是我的代码,它将保存所有图像和文本(无论它们是否被更改):


UIDocument


当我想保存 UIDocument 时:

0 投票
2 回答
956 浏览

iphone - 替换 NSFileWrappers

我有一个 NSFileWrapper 目录,我想在其中更新某个 FileWrapper。我想知道最好的方法是什么?

到目前为止,我已经使用了这段代码:

但是,只要 FileWraper 已经存在,我就会在 FileWrapper 中得到重复项,如下所示:

如何防止这种情况并简单地替换 FileWrapper - 在这种情况下为 photo.data?我没有在NSFileWrapper Class Reference中找到任何替换 FileWrappers 的方法。

0 投票
2 回答
328 浏览

iphone - 如何将包裹类型的文件作为邮件附件发送?

我有一个包类型的文档——即它实际上是一个文件夹,但它使用NSFileWrapper并符合com.apple.package显示为一个文件——我想通过电子邮件共享它。我已经制作了一个MFMailComposeViewController,我正在尝试找出给 . 的第一个参数提供什么addAttachmentData:mimeType:fileName:

该软件包包含一个图像文件和一个 plist,尽管将来可能会改变。

如何将包转换为数据?这是正确的做法吗?

0 投票
1 回答
3078 浏览

cocoa - 在由各种文件组成的 NSDocument 中使用 NSFileWrapper

我正在制作一个基于文档的 Cocoa 应用程序,其中文档是动态的文件集合(用户可以添加或删除文件)。特别是,保存和打开操作应该尽可能快

如果我正确理解了文档,我应该使用NSFileWrapper和实现fileWrapperOfType:errorand readFromFileWrapper:ofType:error:. 但是,我找不到完整的代码示例。我应该如何实现以下方法?