在模拟器上测试我的应用程序时,我喜欢编辑甚至从iPhone模拟器文件夹中删除应用程序plist文件(包含NSUserDefaults)的功能。这在测试时非常有用(例如,您的应用程序在其中存储字典,但您更改了用于此数据的模型/键,因此需要删除存储的字典)。
是否可以在设备上访问此文件(针对您自己的应用),而不是越狱?
提前致谢
答案 0 :(得分:5)
该文件位于Library/Preferences
。该文件是名为<iOS application target identifier>.plist
的二进制plist(在应用程序目标设置中查找Identifier字段),或列出目录内容:
NSString *path = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) firstObject];
NSArray *dirContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil];
您还可以根据某些env变量加载带有#ifdef
宏的干净默认值:
#ifdef TESTING
// use the code provided by tsakoyan below
#endif
答案 1 :(得分:3)
如果您只关心NSUserDefaults值,则应该删除/恢复全局默认值所有自定义数据
NSDictionary *userDefDic = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];
NSArray *keys = [NSArray arrayWithArray:[userDefDic allKeys]];
for (NSString *key in keys) {
[[NSUserDefaults standardUserDefaults] removeObjectForKey:key];
}
[[NSUserDefaults standardUserDefaults] synchronize];