Как узнать, есть ли NSUserDefault? - PullRequest
0 голосов
/ 06 мая 2011

Какое условие я использую, чтобы узнать, какие NSUserDefaults я использую?

NSUserDefaults *preftest;
preftest=[NSUserDefaults standardUserDefaults];
NSString *opening = [preftest stringForKey:@"opening"];

Так я получаю данные. Я хочу войти в условие if, если префикс textForKey: @ "Открытие" еще не существует .... Поэтому я попытался:

if (opening == nil) {
    ...
    NSUserDefaults *pref = [NSUserDefaults standardUserDefaults];
    [pref setObject:@"OK" forKey:@"pass"];
    NSString *finalfr = [pref stringForKey:@"opening"];
    NSLog(@"(here's the new value of opening: %@ )", finalfr);
    ...
}

if (opening != nil) {
    NSLog(@" != nil");
    // http request}

Но встроенный, он не работает.

Спасибо, помогите мне !!

Ответы [ 2 ]

1 голос
/ 06 мая 2011

Я хочу войти в условие if, если префиксный текст stringForKey: @ "Открытие" не уже существует ....

Но вытестирование, если оно существует с opening != nil.Если вы хотите проверить, если он не существует, это будет opening == nil или просто !opening.

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *opening = [prefs stringForKey:@"opening"];

if (!opening) {
    [prefs setObject:@"OK" forKey:@"opening"];
    opening = [prefs stringForKey:@"opening"];
    NSLog(@"(here's the new value of opening: %@ )", opening);
    // prints: (here's the new value of opening: OK )
}
1 голос
/ 06 мая 2011

Возможно, вместо сравнения указателя с nil, вы можете сравнить содержимое с пустой строкой [открывающийся isEqualToString: @ ""], который возвращает логическое значение.

...