Pregunta

Yo tengo un if Declaración que su condición se pasa a este archivo de implementación a través de NSUserDefaults como se ve a continuación.

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *code = [defaults objectForKey:@"codeKey"];
selectedCodeLocal = code; 

Después de este código para recuperar la variable de cadena, tengo una instrucción IF:

if (selectedCodeLocal == @"1")
    textView.text = "@blah blah blah";
else
    textview.text = "@abcdefghijklmnop";

Cuando construyo y ejecuto, parece que se está pasando la variable, pero no se está pasando hasta después del if Declaración se ejecuta.

Tengo lugares NSLogestá alrededor de este código que devuelve mi selectedCodeLocal Variable de cadena y el valor de la variable siempre es un paso atrás. (Por ejemplo, si lo paso por primera vez como 4, luego lo paso como 1, primero se devolverá en el registro como 1, luego como 4, entonces 1) Lo siento si te he confundido con eso.

ACTUALIZAR:

- (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";

}

El nslog todavía muestra el valor antiguo de selectedCodeLocal.

Actualización: aquí es donde se establece esa clave. (en la vista anterior)

- (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: ¿Responde esto a su pregunta?storyboard

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top