在Cocoa中保存唯一文件的默认位置



我有一个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;
}

除了上面所示的实现之外,它还创建了一个目录,如果目录不存在的话。

在这篇关于爱的可可的文章中找到更详细的讨论

相关内容

  • 没有找到相关文章

最新更新