在模拟器文件夹中找不到 NSUserDefaults plist

Not finding NSUserDefaults plist in simulator folder

我知道还有其他和我一样的问题。但是我认为我已经尝试了所有方法,但仍然无法在我的模拟器文件夹中找到 NSUserDefaults plist 文件。我确保我获得了正确的模拟器 ID,但我无法找到 NSUserDefaults plist,因为我想检查到底保存了哪些值。有谁知道我应该搜索的文件的确切名称是什么?

有关信息,我正在以下路径中搜索: /Users/username/Library/Developer/CoreSimulator/Devices//data/Library/Preferences

有谁知道我做错了吗?我怎样才能找到那个文件? 感谢您的帮助!

您可以在 运行 时间通过询问打印位置。
每次编译和 运行 模拟器时,文件夹可能与以前不同。

如何编写 NSUserDefaults

NSUserDefaults *userdef = [NSUserDefaults standardUserDefaults];
[userdef setObject:@"testString" forKey:@"testkey"];
[userdef synchronize]; //dont forget synchoniszing after setting new objects

如何读取 NSUserDefaults

NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
NSString *result = [defs objectForKey:@"testkey"];
NSLog(@"read out userdefs = %@",result);

如果您还没有设置任何 NSUserDefaults,则没有文件。

否则你的<BundleIdentifier>.<appName>.plist在哪里?

NSArray *path = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *libraryFolder = [path objectAtIndex:0];
NSString *appID = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"];
NSString *userdefFile = [NSString stringWithFormat:@"%@/Preferences/%@.plist", libraryFolder, appID];
NSLog(@"NSUserDefaults File located at: %@", userdefFile);