Место сохранения файла для приложений Mac - PullRequest
0 голосов
/ 11 июля 2011

Я портирую свой проект iOS на Mac

Я сохраняю несколько файлов, и на iOS я сохранил его в .app в разделе Documents /, однако в MAC OSX файл не создается

/Users/SMTH/Desktop/Development/SIO2 2/SIO2_SDK/tutorials/MyMacApp/macos/build/Debug/00_template.app/Contents/MacOS/../Documents/menustate.sav

используя

std::ofstream file;
file.open(fpath.c_str(), std::ios::out | std::ios::binary);

я делаю что-то.неправильно.или я не могу сохранить в приложении Mac OSX, как в приложении для iOS (где сохранить, затем на MAC?)

Редактировать: я также пробовал другие места, такие как file.open("~/Documents/menustate.sav", std::ios::out | std::ios::binary);, но файл так и не был создан

единственный путь, который был сохранен, был "./" -> "./menustate.sav", который сохранил его в somepath / 00_template.app / Contents / Resources ', нопочему его можно сохранить в ресурсах, и больше нигде?

спасибо

1 Ответ

1 голос
/ 11 июля 2011

По сути, вы не должны, поскольку приложения OSX могут использоваться более чем одним пользователем, и поэтому приложения часто хранятся как доступные для записи только установщиком, а не обычными пользователями.

Открытый вызов - это, я предполагаю, вызов через функцию unix open - если это так, посмотрите на возвращаемое значение file.open и посмотрите, равно ли оно -1. если это так, то посмотрите на глобальную переменную errno и посмотрите, почему она не удалась. Достойный класс C ++ обернет это, чтобы дать вам ошибку в исключении, генерируемом open.

Для MacOSX посмотрите документацию Apple на , куда помещать файлы приложений .

...