В Mac OSX настройки приложения сохраняются автоматически через NSUserDefaults, который сохраняет их в файл .plist ~/Library/Preferences/
. Вам не нужно ничего делать с этим файлом, NSUserDefaults все обработает за вас.
Если у вас есть файл данных в приложении без документов (например, AddressBook.app), вы должны сохранить его в ~/Library/Application Support/Your App Name/
. Там нет встроенного метода, чтобы найти или создать эту папку, вам нужно сделать это самостоятельно. Вот пример из одного из моих собственных приложений: если вы посмотрите на некоторые шаблоны проектов Xcode, вы увидите похожий метод.
+ (NSString *)applicationSupportFolder;
{
// Find this application's Application Support Folder, creating it if
// needed.
NSString *appName, *supportPath = nil;
NSArray *paths = NSSearchPathForDirectoriesInDomains( NSApplicationSupportDirectory, NSUserDomainMask, YES );
if ( [paths count] > 0)
{
appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleExecutable"];
supportPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:appName];
if ( ![[NSFileManager defaultManager] fileExistsAtPath:supportPath] )
if ( ![[NSFileManager defaultManager] createDirectoryAtPath:supportPath attributes:nil] )
supportPath = nil;
}
return supportPath;
}
Имейте в виду, что если ваше приложение популярно, вы, вероятно, получите запросы на возможность иметь несколько файлов библиотеки для разных пользователей, использующих одну учетную запись. Если вы хотите поддержать это, соглашение должно запрашивать путь для использования при запуске приложения, удерживая нажатой клавишу alt / option.