質問

を持っています if その条件がこの実装ファイルに渡される声明 NSUserDefaults 以下に示すように。

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

文字列変数を取得するこのコードの後、IFステートメントがあります。

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

私が構築して実行すると、変数は渡されているように見えますが、それは後まで渡されていません if ステートメントが実行されます。

私には場所があります NSLog私を返すこのコードの周りに selectedCodeLocal 文字列変数と変数の値は、常に一歩遅れています。 (たとえば、最初に4を渡すと、1として渡すと、最初に1としてログで返され、次に4、次に1として返されます)。

アップデート:

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

}

nslogはまだの古い値を表示します selectedCodeLocal.

更新:ここにそのキーが設定されています。 (前のビューで)

- (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:これはあなたの質問に答えますか?storyboard

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top