iOS умеет читать файл plist на симуляторе, но не на устройстве - PullRequest
0 голосов
/ 10 февраля 2012

Ранее я читал посты с той же проблемой, но мой вопрос остается. Мое приложение должно сначала прочитать файл plist, чтобы получить некоторые параметры, и при загрузке на устройство не может прочитать plist настроек по умолчанию (работает на симуляторе). Одним из решений должно быть копирование этого списка в каталог документов, но только этот? Устройство не может прочитать пользовательские значения по умолчанию, установленные в plist? если я скопирую его в каталог docs, сможет ли устройство связать ключи для plist, если оно находится в другом месте? Мне нужно прочитать пользовательские настройки по умолчанию перед выполнением любой функции. Спасибо.

-(void)loadSettings
{    
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    self.userID = [[NSUserDefaults standardUserDefaults] stringForKey:@"userID"];

    self.nom2 = [[NSUserDefaults standardUserDefaults] stringForKey:@"t2"];
    self.nom3 = [[NSUserDefaults standardUserDefaults] stringForKey:@"t3"];
    self.nom4 = [[NSUserDefaults standardUserDefaults] stringForKey:@"t4"];

    self.currentGlobal = [[NSUserDefaults standardUserDefaults] stringForKey:@"versionApp"];
    NSLog(@"Version App = %@", currentGlobal);


    self.colorTab = [[NSUserDefaults standardUserDefaults] stringForKey:@"color"];

    firstBoot = [[NSUserDefaults standardUserDefaults] boolForKey:@"firstBoot"];

    [defaults synchronize];

}

Ответы [ 3 ]

3 голосов
/ 11 февраля 2012

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

[[NSUserDefaults standardUserDefaults] registerDefaults:
    [NSDictionary dictionaryWithObject: [NSNumber numberWithBool:YES] 
                                forKey: @"firstBoot"]];

Прелесть NSUserDefaults в том, что вам никогда не придется связываться с pList или файловой системой iOS.

1 голос
/ 10 февраля 2012

Вам не нужно копировать plist для standardUserDefaults в каталог документов. Вы должны позволить iOS создать этот файл самостоятельно и не включать его в ваше приложение. Если вам нужно установить значения по умолчанию, то вы должны использовать метод registerDefaults: в экземпляре standardUserDefaults, передавая словарь пар ключ-значение.

1 голос
/ 10 февраля 2012

Вы смотрели на использование NSUserDefaults?

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html

Он автоматически выполняет то, что вы описываете, и вам не нужно управлять файлами.Это простой API, в который вы можете читать и записывать настройки, а iOS позаботится о вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...