2015-10-20 68 views
0

我正在开发一个基于文档的应用程序,允许用户插入图像,电影制作作品。使用NSFileWrapper保存文档

保存文档时,我创建了一个directoryFileWrapper,其中放置了我的项目的xml表示,以及一个使用原始路径(如果文档尚未保存)的图像/电影的一个fileWrapper或其内部的相对路径包裹。

保存后,用户可以将文档移动到其他位置/ mac并仍可访问其内容。

如果用户执行“SaveAsOperation”并将其保存在同一位置,则首先删除该文档,然后我必须重新创建该文档。问题在于我无法使用相对路径重新创建fileWrappers,因为文档本身已被删除。

有没有办法阻止它发生? 将现有文件保存到包中的正确方法是什么?

+0

你重写哪种方法NSDocument的? – Willeke

+0

-fileWrapperOfType:错误: – vtruant

+0

-readFromFileWrapper:ofType:错误: – vtruant

回答

0

做到这一点的方法是:

在.H

  • 创建一个实例变种NSFileWrapper。

在init:

  • 创建一个空directoryFileWrapper。

要添加一个文件在包装每次:

  • 添加directoryFileWrapper

在-readFromFileWrapper这里面的文件:(NSFileWrapper *)inFileWrapper ofType:错误:

  • 使“inFileWrapper”成为您的文件夹(不要忘记先前发布并保留新文件)

在-fileWrapperOfType:错误:

  • 回报,你fileWrapper。

如果你也想用NSFileWrapper,这个环节可能会有所帮助 https://www.cocoanetics.com/2012/09/back-on-mac-os-x-tutorial-for-ios-developers/ 和GitHub的回购是https://github.com/Cocoanetics/Examples