我有一個Cocoa應用程序,它讀取並保存唯一文件中的數據。這個文件實際上是應用程序的一部分;你可以把它想象成一個配置文件。什麼是最好的地方來保存這個文件?在<App name>.app/
目錄裏面?在用戶家中的某個隱藏目錄中?在Cocoa中保存唯一文件的默認位置
在此先感謝?
我有一個Cocoa應用程序,它讀取並保存唯一文件中的數據。這個文件實際上是應用程序的一部分;你可以把它想象成一個配置文件。什麼是最好的地方來保存這個文件?在<App name>.app/
目錄裏面?在用戶家中的某個隱藏目錄中?在Cocoa中保存唯一文件的默認位置
在此先感謝?
不要把它放在.app
包中。它可能對用戶不可寫,設置文件將是全局的,而不是每個用戶。
最合適的地方可能在用戶的應用程序支持目錄中:~/Library/Application Support/FooApp
(其中FooApp
是您的應用程序的名稱)。你可以建立一個路徑到該目錄與下面的代碼位(這可能需要稍微適應個人用途):
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
path = [path stringByAppendingPathComponent:@"FooApp"]; // The file will go in this directory
NSString *saveFilePath = [path stringByAppendingPathComponent:@"save_file.dat"];
你會寫你的文件到應用程序的應用程序支持文件夾。你可以得到的字符串到這個文件夾是這樣的:
- (NSString *)applicationSupportDirectory
{
NSString *executableName =
[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleExecutable"];
NSError *error;
NSString *result =
[self
findOrCreateDirectory:NSApplicationSupportDirectory
inDomain:NSUserDomainMask
appendPathComponent:executableName
error:&error];
if (error)
{
NSLog(@"Unable to find or create application support directory:\n%@", error);
}
return result;
}
除了上面所示的實現還創建目錄,如果已不存在。
在本文中查找更詳細的討論Cocoa with Love