Si l'instruction s'exécute avant que ses variables conditionnelles soient définies
-
30-10-2019 - |
Question
j'ai un if
Énoncé de condition qui est transmis à ce fichier d'implémentation via NSUserDefaults
comme vu ci-dessous.
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *code = [defaults objectForKey:@"codeKey"];
selectedCodeLocal = code;
Après ce code pour récupérer la variable de chaîne, j'ai une instruction IF:
if (selectedCodeLocal == @"1")
textView.text = "@blah blah blah";
else
textview.text = "@abcdefghijklmnop";
Lorsque je construis et cours, il semble que la variable soit passée, mais elle n'est pas transmise qu'après le if
Instruction s'exécute.
J'ai des endroits NSLog
est autour de ce code qui renvoie mon selectedCodeLocal
La variable de chaîne et la valeur de la variable est toujours en retard. (Par exemple, si je le passe d'abord comme 4, puis passez-le comme 1, il sera renvoyé dans le journal d'abord comme 1, puis 4, alors comme 1) Désolé si je vous ai confondu avec cela.
METTRE À JOUR:
- (void)viewDidLoad {
[super viewDidLoad];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults synchronize];
selectedCodeLocal = [defaults objectForKey:@"codeKey"];
NSLog(@"set: %@",selectedCodeLocal);
self.navigationItem.title = selectedCodeLocal;
[textView setClipsToBounds:NO];
[textView setEditable:NO];
[textView setFrame:CGRectMake(20, 100, 50, 50)];
if ([selectedCodeLocal isEqualToString:@"100"])
textView.text = @"abc";
else
textView.text = @"xyz";
}
Le nslog affiche toujours l'ancienne valeur de selectedCodeLocal
.
MISE À JOUR: Voici où cette clé est définie. (dans la vue précédente)
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//Get the selected code
NSString *selectedCode = nil;
if(searching)
selectedCode = [copyListOfItems objectAtIndex:indexPath.row];
else {
NSDictionary *dictionary = [listOfItems objectAtIndex:indexPath.section];
NSArray *array = [dictionary objectForKey:@"codesKey"];
selectedCode = [array objectAtIndex:indexPath.row];
}
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:selectedCode forKey:@"codeKey"];
[defaults synchronize];
}
@Firoze Lafeer: Cela répond-il à votre question?
Pas de solution correcte