Есть приложение - Xcode 11, iOS 13 - которое имеет (пока) 8 экранов. На первом экране пользователь вводит его / ее фамилию и имя, и я использую следующее для сохранения (и это работает)
NSString *value1 = _lastName.text;
NSString *value2 = _firstName.text;
NSLog(@"Firstname: %@", value1);
NSLog(@"Lastname: %@", value2);
NSUserDefaults *saved = [NSUserDefaults standardUserDefaults];
[[NSUserDefaults standardUserDefaults] setObject: value1 forKey:@"curLast"];
[[NSUserDefaults standardUserDefaults] setObject: value2 forKey:@"curFirst"];
[saved synchronize];
На втором экране сохраняется другая строка (и это работает)
[[NSUserDefaults standardUserDefaults] setObject: newvalue forKey:@"curData"];
[[NSUserDefaults standardUserDefaults] synchronize];
Я использую curData на следующих 3 экранах - работает. На 5-м экране я использую curLast и curFirst - работает. Но на следующем экране я пытаюсь получить curLast и curFirst снова:
NSString *lsaved = [[NSUserDefaults standardUserDefaults]
stringForKey:@"curLast"];
NSString *lsaved2 = [lsaved stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString *fsaved = [[NSUserDefaults standardUserDefaults]
stringForKey:@"curFirst"];
NSLog (@"Last%@ First %@", lsaved2, fsaved);
Они оба (нулевые).
Я видел другие темы SO об этом, но в более ранних версиях и якобы было исправление. Есть предложения?