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 NSLogest 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?storyboard

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top