有没有办法直接看到什么被保存到NSUserDefaults ?我想看看我的数据保存是否正确。
当前回答
你可以打印当前所有的NSUserDefaults到日志:
键:
NSLog(@"%@", [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys]);
键和值:
NSLog(@"%@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);
其他回答
对于 Xcode 7
NSUserDefaults standardDefaults存储在这里:
用户/用户/{}/图书馆/开发/ CoreSimulator /设备/ {UUID} /数据/集装箱/数据/应用程序/ {UUID}
一个套件/应用程序组的NSUserDefaults存储在这里:
/用户/ {USER} /图书馆/开发/ CoreSimulator /设备/ {UUID} /数据/集装箱/共享/ AppGroup / {UUID} / {GROUP_NAME} .plist /图书馆/偏好
我建议使用https://github.com/scinfu/NCSimulatorPlugin,因为现在所有东西都隐藏在uuid后面,很难找到。它允许轻松访问您的模拟器应用程序目录。
你可以NSLog你设置的每个值,比如:
NSLog(@"%@",[[NSUserDefaults standardDefaults] stringForKey:@"WhateverTheKeyYouSet"]);
在Swift中,我们可以使用以下功能:-
斯威夫特3。X & 4.x
获取所有键和值:
for (key, value) in UserDefaults.standard.dictionaryRepresentation() {
print("\(key) = \(value) \n")
}
检索用户默认值的完整字典表示:
print(Array(UserDefaults.standard.dictionaryRepresentation()))
检索密钥:
// Using dump since the keys are an array of strings.
dump(Array(UserDefaults.standard.dictionaryRepresentation().keys))
检索值:
我们也可以在这里使用dump,但这将返回values数组中每个元素的完整继承层次结构。如果需要关于对象的更多信息,则使用dump,否则使用正常的print语句。
// dump(Array(UserDefaults.standard.dictionaryRepresentation().values))
print(Array(UserDefaults.standard.dictionaryRepresentation().values))
快2.倍
检索用户默认值的完整字典表示:
print(NSUserDefaults.standardUserDefaults().dictionaryRepresentation())
检索密钥:
print(NSUserDefaults.standardUserDefaults().dictionaryRepresentation().keys.array)
检索值:
print(NSUserDefaults.standardUserDefaults().dictionaryRepresentation().values.array)
你可以打印出应用程序的首选项目录的路径:didFinishLaunchingWithOptions:回调在你的AppDelegate:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
print(FileManager.default.urls(for: .preferencePanesDirectory, in: .userDomainMask).first!)
return true
}
然后你可以直接查看plist文件,看看里面保存了什么。
你可以在模拟器中找到你的应用的pList文件,如果你去:
/users/你的用户名/库/应用程序支持/iPhone模拟器/<Sim版本>/应用程序
这个目录有很多以GUID命名的目录。如果你正在开发一些应用程序,就会有一些这样的应用程序。所以你需要找到你的应用二进制:
find . -name foo.app
./1BAB4C83-8E7E-4671-AC36-6043F8A9BFA7/foo.app
然后进入GUID目录下的Library/Preferences目录。所以:
cd 1BAB4C83-8E7E-4671-AC35-6043F8A9BFA7/Library/Preferences
你应该会找到这样一个文件:
<Bundle Identifier>.foo.pList
在pList编辑器中打开它,并浏览您想要的持久值。
推荐文章
- 我如何获得iOS 7默认的蓝色编程?
- UITapGestureRecognizer破坏UITableView didSelectRowAtIndexPath
- 在Objective-C中@property保留,赋值,复制,非原子
- 6.5英寸屏幕的App store截图大小是多少?
- 我如何在NSAttributedString中创建一个可点击的链接?
- iOS测试/规格TDD/BDD以及集成和验收测试
- 停止UIWebView垂直“弹跳”?
- 启动屏幕故事板不显示图像
- 对未渲染的视图进行快照,结果是一个空快照
- 在Mac上安装R -警告消息:设置LC_CTYPE失败,使用“C”
- 是否可以为iPhone应用程序(如YouTube和地图)注册一个基于http+域的URL方案?
- 模拟器错误fbssystemservicdomain代码4
- 为什么cURL返回错误“(23)Failed writing body”?
- 开始使用instancetype而不是id是否有益?
- 节点和错误:EMFILE,打开的文件太多