2011-04-04 71 views
1

我有一個Cocoa應用程序,它讀取並保存唯一文件中的數據。這個文件實際上是應用程序的一部分;你可以把它想象成一個配置文件。什麼是最好的地方來保存這個文件?在<App name>.app/目錄裏面?在用戶家中的某個隱藏目錄中?在Cocoa中保存唯一文件的默認位置

在此先感謝?

回答

4

不要把它放在.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"]; 
3

你會寫你的文件到應用程序的應用程序支持文件夾。你可以得到的字符串到這個文件夾是這樣的:

- (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

相關問題