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



我知道还有其他与我相同的问题。但我想我已经尝试了所有的方法,但仍然无法在模拟器文件夹中找到NSUserDefaults plist文件。我确保我得到了模拟器的正确ID,但我找不到NSUserDefaults plist,因为我想检查到底保存了什么值。有人知道我应该搜索的文件的确切名称吗?

有关信息,我正在以下路径中搜索:/用户/用户名/库/开发者/核心模拟器/设备/<device_id>数据/库/首选项

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

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

如何写入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);

最新更新