你能在xcode调试器的任何地方看到NSUserDefaults的值吗?

2vuwiymt  于 2023-01-21  发布在  其他
关注(0)|答案(7)|浏览(154)

你能在xcode调试器中看到NSUserDefaults的值吗?
只是想知道这是否可能?
谢谢你,
尼克

mtb9vblg

mtb9vblg1#

不知道有任何GUI显示NSUserDefaults,但我在应用程序委托中使用它来查看启动时的设置:

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSLog(@"%@ DEFAULTS = %@", [self class], [defaults persistentDomainForName:[[NSBundle mainBundle] bundleIdentifier]]);
}
k3bvogb1

k3bvogb12#

您可以在调试器中记录或使用PO命令来获取密钥:

NSLog(@"%@", [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys]);

或对于键和值:

NSLog(@"%@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);

调试器使用时(& O):获取所有密钥:

po [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys]

对于键值(& V):

po [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]
zpqajqem

zpqajqem3#

更新Swift 5

将所有UserDefault键值对打印到控制台:

print(UserDefaults.standard.dictionaryRepresentation())

将UserDefault打印到控制台:

print(UserDefaults.standard.dictionaryRepresentation().keys)

将UserDefault打印到控制台:

print(UserDefaults.standard.dictionaryRepresentation().values)
taor4pac

taor4pac4#

改为:

po UserDefaults.standard.value(forKey: "key")

写:

po UserDefaults.standard.set(true, forKey: "key")
2jcobegt

2jcobegt5#

您也可以直接在变量断点视图上添加表达式,并添加:UserDefaults.standard.dictionaryRepresentation()参见下图。
add breakpoint view

7uzetpgm

7uzetpgm6#

我没有在调试器中查看它们的解决方案,但我可以提供以下解决方案:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSLog(@"%@", [defaults dictionaryRepresentation]);

对于一些穴居人调试:)
编辑:正如大卫在评论中所建议的,我们现在可以在调试控制台中完成此操作:

po [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]

雨燕3.0

po UserDefaults.standard.dictionaryRepresentation()
93ze6v8z

93ze6v8z7#

我还没有这样做,但你应该能够执行一个po(打印对象)命令对用户默认值如下:

po [[NSUserDefaults standardUserDefaults] valueForKey:@"someKeyName"]

我更喜欢将我的默认值 Package 在一个定制类中,并创建一个转储默认值的描述方法。
您可以使用“defaults”命令行工具来检查默认值。详细信息请阅读手册页。

相关问题