Я использую класс NSUserDefaults для хранения некоторых данных, но у меня нормальный конфликт относительно инициализации.iOS: NSUserDefaults во время первого запуска приложения?
Я имею в виду:
В моем классе А в методе didViewLoad, я поставил мои данные NSUserDefaults, а затем в моем классе B, в didViewLoad, я хочу, чтобы мои данные NSUserDefaults.
Я видел с точками останова, что во время первого запуска приложения выполнено все didViewLoad() приложения, поэтому я хотел бы поместить условие в viewDidLoad() моего класса B для первого -run-application, чтобы избежать случайной инициализации данных.
У нас есть ключевое слово в структуре Objective-C вместо использования статической переменной?
например:
ClassA -> didViewLoad():
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:kdataText forKey:@"udVariable"];
ClassB-> didViewLoad():
И:
ClassB -> didViewLoad():
if (!first_run){ // first_run --> KEYWORD FRAMEWORK???
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *var = [defaults objectForKey:@"udVariable"];
}
в качестве дополнения к этому ответу, регистрационные значения по умолчанию будут регистрировать любые новые значения unregisterd для каждой новой сборки вашего приложения, поэтому не стесняйтесь просто добавлять новые значения там – Eugene
@matt, oh nice statements Matt! Это будет очень полезно для моих следующих шагов :). Но это заявление, на самом деле не исправить мою проблему, потому что мне нужно явное условие как: если (First_Run) { // ничего } еще { // получить данные из NSUserDefault } мне действительно нужно, если условие для корректного выполнения моего алгоритма. –
@matt, я думаю, что я поймал то, что вы сказали. Я читал больше о [[NSUserDefaults standardUserDefaults] registerDefaults, но я всегда жду более прагматичной информации.Многие thx –