Mac应用程序的NSUserDefaults数据在哪里存储?
我正在使用NSUserDefaults在我的应用程序中存储一些数据。
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; [prefs setObject:@"dummy string" forKey:@"lastValue"]; [prefs synchronize];
出于testing目的,我需要看到我的NSUserDefaults数据保存在Mac上的系统首选项plist文件。
我知道iOS应用程序用户默认存储在哪里,但我不知道有关mac应用程序。 Mac应用程序的NSUserDefaults数据在哪里存储?
他们可以在多个地方find:
~/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
在~/Library/Preferences/com.example.myapp.plist
。
(Xcode 7.3.1,macOS 10.11.6)
另外,如果您正在使用应用程序组
if let prefs = NSUserDefaults(suiteName: "group.groupApps") { ... }
plist文件将在这里:
〜/ Library / Group Containers / group。 groupApps /库/首选项/ group.groupApps.plist
在Sierra上,我find了这里的数据: ~/Library/Application Support/
。
在游乐场试玩时,这些数据还有一个可能的位置。 我正在使用XCode 8.3和Swift 3在Playground上进行UserDefaults的试验,并希望看到最后的plist文件。 经过一些侦探工作(UserDefaults文件在文件名中具有包标识符,并且在Playground中调用Bundle.main.bundleIdentifier给出XCode标识符)之后,我发现我非常惊讶的是UserDefaults数据被添加到:
~/Library/Preferences/com.apple.dt.Xcode
换句话说,键和值被添加到XCode首选项文件! 我仔细检查了钥匙的非常不可能的string,他们确实添加在那里。 我没有勇气尝试使用一些已被XCode使用的密钥,但谨慎看起来不错。