NSUserDefaults - storing and retrieving data

后端 未结 4 1299
不思量自难忘°
不思量自难忘° 2020-12-18 11:04

I have some data that\'s been stored using NSUserDefaults in one view and then being displayed in another view. The issue I\'m having is that when the user changes the data

相关标签:
4条回答
  • 2020-12-18 11:40

    Do not forget the use synchronize when you set some value

    NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:YOUR_VALUE forKey:@"KEY_NAME"];
    [defaults synchronize];
    

    Now you can place your code in viewWillAppear method to retrieve the value from defaults, this will help you fetch the currentsaved value for your desired key.

    NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
    NSString* strValue =    [defaults objectForKey:@"KEY_NAME"];
    myLabel.text = strValue != nil ? strValue : @"No Value";
    

    Hope it helps

    0 讨论(0)
  • 2020-12-18 11:41

    Put this text in

    - (void) viewWillAppear:(BOOL)animated
    {
        [super viewWillAppear: animated];
        NSString *aValue = [[NSUserDefaults standardUserDefaults] objectForKey:@"myTextFieldKey"];
        NSLog(@"Value from standardUserDefaults: %@", aValue);
    
        NSLog(@"Label: %@", myLabel);
        myLabel.text = aValue;
    }
    

    And in your "edit" view in - viewWillDisappear: save changes in NSUserDefaults

    0 讨论(0)
  • 2020-12-18 11:44

    When saving data to NSUserDefaults, it doesnt immediately write to the Persistent Storage. When you save data in NSUserDefaults, make sure you call:

    [[NSUserDefaults standardUserDefaults] synchronize];
    

    This way, the value(s) saved will immediately be written to Storage and each subsequent read from the UserDefaults will yield the updated value.

    0 讨论(0)
  • 2020-12-18 11:45

    In Swift we can do it following way:

    To save value:

     let defaults = UserDefaults.standard
     defaults.set(YOUR_VALUE, forKey: "YOUR_KEY_NAME")
    

    To get value:

     let defaults = UserDefaults.standard
     let data = defaults.objectForKey("YOUR_KEY_NAME")
    

    For more details visit: https://www.hackingwithswift.com/example-code/system/how-to-save-user-settings-using-userdefaults

    0 讨论(0)
提交回复
热议问题