Mac应用程序的NSUserDefaults数据存储在哪里?

时间:2011-11-02 15:15:42

标签: objective-c macos cocoa plist nsuserdefaults

我正在使用NSUserDefaults在我的应用程序中存储一些数据。

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"dummy string" forKey:@"lastValue"];
[prefs synchronize];

出于测试目的,我需要查看系统偏好设备plist文件,其中我的NSUserDefaults数据保存在Mac上。

我知道iOS应用程序用户默认存储的位置,但我不知道mac应用程序。 Mac应用程序的NSUserDefaults数据存储在哪里?

5 个答案:

答案 0 :(得分:144)

它们可以在多个地方找到:

~/Library/Preferences/com.example.myapp.plist
~/Library/SyncedPreferences/com.example.myapp.plist

如果沙盒

~/Library/Containers/com.example.myapp/Data/Library/Preferences/com.example.myapp.plist
~/Library/Containers/com.example.myapp/Data/Library/SyncedPreferences/com.example.myapp.plist

答案 1 :(得分:20)

~/Library/Preferences/com.example.myapp.plist

答案 2 :(得分:3)

(Xcode 7.3.1,macOS 10.11.6)

对于其他,如果您使用的是应用程序组

    if let prefs = NSUserDefaults(suiteName: "group.groupApps")  {
       ...
    }

plist文件将在这里:

〜/ Library / Group Containers / group。 groupApps /库/首/ group.groupApps.plist

答案 3 :(得分:1)

在Sierra,我在这里找到了数据:~/Library/Application Support/

答案 4 :(得分:0)

这些数据的另一个可能位置在Playground中尝试时发挥作用。我正在使用XCode 8.3和Swift 3在Playground中试验UserDefaults,并希望查看生成的plist文件。经过一些侦探工作(UserDefaults文件在文件名中包含了bundle标识符并在Playground中调用Bundle.main.bundleIdentifier给出了XCode标识符)后,我惊讶地发现UserDefaults数据被添加到:

~/Library/Preferences/com.apple.dt.Xcode

换句话说,键和值将添加到XCode首选项文件中!我通过为键提供非常不可能的字符串进行了双重检查,并确实添加了它们。我没有勇气尝试使用XCode已经使用过的一些密钥,但这里的注意事项似乎很好。