【发布时间】:2015-10-20 13:03:12
【问题描述】:
我正在开发一个基于文档的应用程序,允许用户插入图像、电影来制作作品。
保存文档时,我创建了一个 directoryFileWrapper,在其中放置了我的项目的 xml 表示,并为每个图像/电影使用原始路径(如果尚未保存文档)或它的相对路径在包。
保存后,用户可以将文档移动到另一个位置/mac,并且仍然可以访问其内容。
如果用户执行“SaveAsOperation”并将其保存在同一位置,则文档首先会被删除,然后我必须重新创建它。问题是我无法使用相对路径重新创建 fileWrappers,因为文档本身已被删除。
有没有办法防止它发生? 将现有文件保存到包中的正确方法是什么?
【问题讨论】:
-
你覆盖了 NSDocument 的哪个方法?
-
-fileWrapperOfType: 错误:
-
-readFromFileWrapper:ofType:error:
-
那些是为了阅读。您重写了哪个 NSDocument 方法进行写作?你试过
-[NSDocument writeToURL:ofType:forSaveOperation:originalContentsURL:error:]吗? -
-fileWrapperOfType: error: 在写操作期间被调用。我尝试了 writeToURL,但该文件在此调用之前已被删除。
标签: macos cocoa save-as nsfilewrapper