Xcode NSUserDefaults включает NULL / nil после нескольких экранов - PullRequest
0 голосов
/ 29 марта 2020

Есть приложение - 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 об этом, но в более ранних версиях и якобы было исправление. Есть предложения?

...