无法在labelText

时间:2017-01-19 08:41:59

标签: ios objective-c

当我尝试使用

lblSchool.text = [[NSUserDefaults standardUserDefaults] objectForKey:SCHOOL_NAME];

这给出空白值。但以下代码在结果页面中显示值。

lblSchool.text = @"Test Name";

UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"INTL" message:[[NSUserDefaults standardUserDefaults] objectForKey:SCHOOL_NAME] delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
    [alert show];

更新

当我从文本中删除换行符(修剪过的新行)时,问题就解决了。

我使用了以下代码行。

 NSString *greeting = [[[NSUserDefaults standardUserDefaults]objectForKey:SCHOOL_NAME] stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]];
    lblSchool.text = greeting;

1 个答案:

答案 0 :(得分:2)

self = this; reader.onload = function(e) { self.text=reader.result; } 中设置值,如下所示:

存储值后

同步NSUserDefaults

NSUserDefaults的{​​{1}}方法会定期自动调用,只有在您不能等待自动同步的情况下才使用此方法,如果您想频繁或短暂使用synchronize中的值然后使用NSUserDefaults(正如 Russell 指出的那样)。

NSUserDefaults

记录值并检查实际值是否存在,如下所示:

synchronize

如果值实际存在,那么下面的代码应该可以正常工作:

[[NSUserDefaults standardUserDefaults]setObject:@"SchoolName" forKey:SCHOOL_NAME];
[[NSUserDefaults standardUserDefaults]synchronize];