2012-06-08 3 views
0

Играя с моим кодом сегодня,Установка значения настроек из сохраненного предпочтения

я запускаю этот конкретный кусок кода несколько раз в незначительных изменениях в течение определенного класса, я пытаюсь рационализировать, хотя. Разница в эффективности минимальна, но меняет количество кода на сотни или тысячи строк, поэтому для меня это будет большой личной победой.

По существу у меня есть значение, хранящееся как целое число с ключом «codeKey», и я хочу вставить значение этого ключа, где в настоящее время находится номер 30061. Я немного потерял, как, может ли кто-нибудь помочь мне с этим?

Я знаю, что мне нужно как-то вспомнить значение и поместить его, но я не уверен, как это будет выглядеть.

if ([[NSUserDefaults standardUserDefaults] integerForKey:@"buttonID"] == 1) { 
     NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
     [userDefaults setInteger:30061 forKey:@"scifi1"]; 
     [userDefaults synchronize];} 

ответ

1

Я полагаю, это означает, что вы динамически сохраняете эту информацию, не повторяя один и тот же код снова и снова. Если это верно, то ваше решение будет что-то вроде этого:

-(void)saveCodeKey:(int)key { 

    if ([[NSUserDefaults standardUserDefaults] integerForKey:@"buttonID"] == 1) { 

     NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
     [userDefaults setInteger:key forKey:@"scifi1"]; 
     [userDefaults synchronize]; 

    } 
} 

Теперь вы можете просто вызвать [self saveCodeKey:12345]; Предполагая, что метод -saveCodeKey: находится в том же классе.

Надеюсь, это поможет!

+0

Я думаю, что это может быть ... Мне нужно сначала попробовать. Я предполагаю, что в этом примере «ключ» будет тем, что я храню значение 30061 в моем примере выше, например. 'code' NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults]; [userDefaults setInteger: 30061 forKey: @ "key"]; [userDefaults synchronize]; 'code' – David26th

+0

Я был под впечатлением, что целочисленное значение - это то, что нужно изменить, а не сам ключ. Если это так, ваш параметр должен быть строкой, а не int – skram

+0

. По существу, я буду хранить значение где-нибудь еще в форме Integer (по разным причинам), которую нужно вызвать и разместить там, где у вас есть «код» [userDefaults setInteger: ЗДЕСЬ forKey: "@ scifi1 '];' code' по существу устанавливает ключ от ключа, если это имеет смысл. – David26th

Смежные вопросы