ios - 在模拟器文件夹中找不到 NSUserDefaults plist
问题描述
我知道还有其他与我相同的问题。但是我认为我已经尝试了所有方法,但我仍然无法在我的模拟器文件夹中找到 NSUserDefaults plist 文件。我确保我获得了模拟器的正确 ID,但我无法找到 NSUserDefaults plist,因为我想准确检查正在保存的值。有谁知道我应该搜索的文件的确切名称是什么?
有关信息,我正在以下路径中搜索:/Users/username/Library/Developer/CoreSimulator/Devices/<device_id>/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);
推荐阅读
- unit-testing - 我无法运行单元测试(Python)
- excel - 查找并删除一行 Excel VBA 代码
- swift - SwiftUI - 在预览中模拟 @EnvironmentObject 数据
- excel - 如何有条件地选择数学公式来计算 Excel 中的值?
- php - 使用 AJAX 和 jQuery 返回所有 JSON(API) 数据
- matlab - MATLAB 中的 stlread 返回不同数量的顶点/点
- r - 将缺少的 CRS 添加到 R 简单功能中的 sf 对象
- ios - iOS CallKit - 将 VoIP 通话与 GSM 通话合并
- avaloniaui - AvaloniaUI DoDragDrop() 示例?
- python - 根据两列的相同值创建显示行之间配对的列