В моей основе приложении NSDocument, мои документы должны быть связаны с каталогами (они индекс каталога)Как я могу открыть открытые папки на основе NSDocument, но сохранить связанные документы в поддержку приложений?
Я хочу, чтобы иметь возможность открывать/сохранять документы в соответствии со следующим прецедентом:
Открытие каталога: a) если в папке есть файл .myapp, откройте его b) иначе посмотрите, есть ли файл HASH-OF-PATH-basename.myapp в ~/Library/Application Support/MyApp и откройте это b) иначе создайте новый документ в памяти
Открытие файла xxx.myapp, как нормальный
Сохранить/автосохранения а) если источник тока Дока 1b, 1c, или 2 сохранить файл в ~/Library/Application Support/MyApp/HASH-зача- PATH-basename.myapp б) если источник тока документ был 1а, сохранить этот файл .myapp
Save As/сохранить в б) сохранить xxxxx.myapp туда, где пользователь указывает
Очевидным было бы просто реализовать readFromURL : ofType: error: L и writeToURL: ofType: forSaveOperation: originalContentsURL: ошибка: и URL-адрес переключателя по мере необходимости, основываясь на том, что было сделано с сохранением.
Это работает с тем, что я могу открывать файлы и папки, а когда я сохраняю открытую папку, мой файл сохраняется в Application Support, но затем после writeToURL: ofType: forSaveOperation: originalContentsURL: ошибка возникает ошибка и отображается диалоговое окно со следующей погрешностью:
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."
+1 потому что NSDocument - странный зверь :) – jtbandes
было странно, но я думаю, что какао что-то делает между saveToURL и writeToURL. Может быть, это связано с экономией атомного или «безопасного»? Интересно, потеряете ли вы это при переопределении writeTOURL? –