Строка NSUserDefault не может получить и преобразовать в двойной

Я сохраняю значение в NSUserDefault.

Исходное значение в double, я конвертирую его в NSNumber и затем сохраняю как строку. Я напечатал значения при сохранении, и они установлены правильно.

При получении я получаю строковое значение и конвертирую его в double. Но и строка, и двойное значение ничего не дают. строка дает ноль, а двойная дает 0,000

экономия

//convert filtersequcne to NSNumber...finally saved as string

            NSNumber *myDoubleNumber = [NSNumber numberWithDouble:filtersequence];
            NSLog(@"Value being stored in myDoubleNumber %@",myDoubleNumber);


            // save string with input name of filter for that key
            NSUserDefaults *combination = [NSUserDefaults standardUserDefaults];
            [combination setObject:[myDoubleNumber stringValue] forKey:input];

            NSLog(@"Value of [mydoublenumber] string value %@",[myDoubleNumber stringValue]);

Возвращение ценностей

//get input from saved filter
    NSUserDefaults *fetchcombination = [NSUserDefaults standardUserDefaults];

    // get the string
    NSString *message = [fetchcombination objectForKey:@"Test"];
    NSLog(@"Value of message %@",message);

    // convert string to double
    double actualdoublecombination = [message doubleValue];
    NSLog(@"Value of double actualdoublecombination %f",actualdoublecombination);

1 ответ

Решение

Вот как вы сохраняете / читаете дубль:

double value = 42.00;
[[NSUserDefaults standardUserDefaults] setDouble:value forKey:@"MyDouble"];

double value = [[NSUserDefaults standardUserDefaults] doubleForKey:@"MyDouble"];
Другие вопросы по тегам