iOS 本地存储的调试

iOS 本地存储形成的文件会在手机里,通过将文件从手机导出可查看其内容,同时对其进行修改后再导入手机可使用修改后的值。这样可以方便地进行本地存储相关的调试。

NSUserDefaults 的读写为例。

以下代码会创建 NSUserDefaults 数据并生成相应 plist 文件:


- (void)viewDidLoad {
  [super viewDidLoad];
    
  [self saveValue:@{@"foo" : @1, @"bar" : @2} forKey:@"dic"];
  [self saveValue:@"some string..." forKey:@"myString"];
}

- (BOOL)saveValue:(id)value forKey:(NSString *)key {
  [[NSUserDefaults standardUserDefaults] setObject:value forKey:key];
  BOOL result =  [[NSUserDefaults standardUserDefaults] synchronize];
    return result;
}

数据的查看

  • + + 2 打开 Devices and Simulators
  • 找到对应的设备,选中相应的 App
  • 点击设置按钮后选择 Download container... 将应用的包数据下载到电脑。

Download container

Download container

  • 拿到包数据后,右键选择 Show Package Contents。这样便可查看到应用中所有创建的文件及存储的数据。
  • 拿 UserDefaults 数据来说,它位于 AppData->Library->Preferences 下,<identifier name>.plist 便是存储对应值的文件。

NSUserDefaults 的查看

NSUserDefaults 的查看

数据的修改

使用 Xcode 打开后,可看到代码中写入的键值对,可在此对其进行更改并保存。 将修改的数据更新到手机,是上面下载 container 的逆向过程。

  • + + 2 打开 Devices and Simulators
  • 找到对应的设备,选中相应的 App
  • 点击设置按钮后选择 Replace container... 弹出文件选择对话框。
  • 选择之前下载的 container 文件进行写入。
  • 等写入完成后,重新 build 运行项目后生效。