Получить NSUserDefaults plist файл с устройства - PullRequest
5 голосов
/ 26 июля 2011

При тестировании моего приложения на симуляторе мне нравится возможность редактировать или даже удалять файл списка приложений (который содержит NSUserDefaults) из папки iPhone Simulator.Это оказывается полезным при тестировании (например, ваше приложение хранит там словарь, но вы меняете модель / ключи, которые используете для этих данных, и, следовательно, должны удалить сохраненный словарь).

Возможно ли получить доступэтот файл на устройстве (для вашего собственного приложения), без джейлбрейка?

Заранее спасибо

Ответы [ 2 ]

5 голосов
/ 26 июля 2011

Файл находится в Library/Preferences. Файл представляет собой двоичный список с именем <iOS application target identifier>.plist (найдите поле «Идентификатор» в настройках целевого приложения) или укажите содержимое каталога:

NSString *path = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) firstObject];
NSArray *dirContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil];

Вы также можете загрузить чистые значения по умолчанию с помощью макроса #ifdef на основе некоторой переменной env:

#ifdef TESTING
    // use the code provided by tsakoyan below
#endif
3 голосов
/ 26 июля 2011

Если вам нужны только значения NSUserDefaults, это должно привести к восстановлению / восстановлению глобальных значений по умолчанию всех его пользовательских данных

 NSDictionary *userDefDic = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];
 NSArray *keys = [NSArray arrayWithArray:[userDefDic allKeys]];
 for (NSString *key in keys) {
     [[NSUserDefaults standardUserDefaults] removeObjectForKey:key];
 }
 [[NSUserDefaults standardUserDefaults] synchronize]; 
...