我有一个Cocoa应用程序,它在一个单独的文件中读取和保存数据。这个文件实际上是应用程序的一部分;您可以将其视为一个配置文件。保存这个文件的最佳位置是什么?在<App name>.app/
目录里面?在用户家里的某个隐藏目录里?
提前谢谢?
不要放在.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;
}
除了上面所示的实现之外,它还创建了一个目录,如果目录不存在的话。
在这篇关于爱的可可的文章中找到更详细的讨论