在我的基于NSDocument的应用程序中,我的文档将与目录相关联(它们是目录的索引)
我希望能够根据以下用例打开/保存文档:
打开目录: a)如果文件夹中有.myapp文件,请将其打开 b)否则查看〜/ Library / Application Support / MyApp中是否有HASH-OF-PATH-basename.myapp文件并打开 b)否则在内存中创建一个新文档
正常打开xxx.myapp文件
保存/自动保存 a)如果当前doc的源是1b,1c或2将文件保存到〜/ Library / Application Support / MyApp / HASH-OF-PATH-basename.myapp b)如果当前doc的来源是1a,保存到.myapp文件
另存为/另存为 b)将xxxxx.myapp保存到用户指定的任何地方
显而易见的事情似乎只是实现readFromURL:ofType:error:L和writeToURL:ofType:forSaveOperation:originalContentsURL:error:并根据saveoperation的内容根据需要切换URL。
这样可以打开文件和文件夹,当我保存一个打开的文件夹时,我的文件会保存到Application Support,但之后是writeToURL:ofType:forSaveOperation:originalContentsURL:error出现错误并显示一个对话框以下错误:
NSDocument could not delete the temporary item at
file://localhost/private/var/folders/6P/6PNpIB-6HreGE+Ikqf5dWU+++TI/
-Tmp-/TemporaryItems/(A%20Document%20Being%20Saved%20By%20MyApp%203)
/SomeDirectory.
Here's the error:
Error Domain=NSCocoaErrorDomain Code=4 UserInfo=0x200583a00
"“SomeDirectory” couldn’t be removed."
答案 0 :(得分:1)
事实证明这很容易解决。
我覆盖了saveToURL:ofType:forSaveOperation:error:并且做了url&在那里根据SaveOperation类型进行类型交换。
现在情况正如预期的那样。