代码之家  ›  专栏  ›  技术社区  ›  Stewart Johnson

Cocoa等效于.NET的Environment.SpecialFolder,用于保存首选项/设置?

  •  4
  • Stewart Johnson  · 技术社区  · 16 年前

    在Xcode中编写Objective-C Cocoa应用程序时,如何获取用于存储每个用户每个应用程序设置的文件夹的引用?

    Environment.SpecialFolder 枚举:

    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
    

    可可的当量是多少?

    2 回复  |  直到 16 年前
        1
  •  14
  •   Marc Charbonneau    16 年前

    在Mac OSX中,应用程序首选项通过NSUserDefaults自动存储,并保存到.plist文件中 ~/Library/Preferences/ . 您不需要对该文件执行任何操作,NSUserDefaults将为您处理一切。

    如果在非基于文档的应用程序(如AddressBook.app)中有数据文件,则应将其存储在 ~/Library/Application Support/Your App Name/

    + (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;
    }
    

        2
  •  0
  •   Mike Abdullah    16 年前

    对于大多数内容,您应该只使用NSUserDefaults API,它为您处理磁盘上的持久化设置。