Ios 无法在labelText中提供动态值

Ios 无法在labelText中提供动态值,ios,objective-c,Ios,Objective C,当我尝试使用 lblSchool.text = [[NSUserDefaults standardUserDefaults] objectForKey:SCHOOL_NAME]; 这将给出空白值。但以下代码在结果页面中显示值 lblSchool.text = @"Test Name"; 及 更新 当我从文本中删除新行(修剪新行)时,问题就解决了 我使用了以下代码行 NSString *greeting = [[[NSUserDefaults standardUserDefaults]obj

当我尝试使用

lblSchool.text = [[NSUserDefaults standardUserDefaults] objectForKey:SCHOOL_NAME];
这将给出空白值。但以下代码在结果页面中显示值

lblSchool.text = @"Test Name";

更新

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

我使用了以下代码行

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

NSUserDefaults
中设置值,如下所示:

NSLog(@"SchoolName is: %@",[NSUserDefaults standardUserDefaults]objectForKey:SCHOOL_NAME]);
存储值后同步
NSUserDefaults

synchronize
定期自动调用
NSUserDefaults
的方法,仅当您无法等待自动同步时才使用此方法,如果您希望频繁或短时间使用
NSUserDefaults
中的值,则使用
synchronize
(正如Russell所指出的)

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

NSLog(@"SchoolName is: %@",[NSUserDefaults standardUserDefaults]objectForKey:SCHOOL_NAME]);
如果实际存在该值,那么下面的代码应该可以正常工作:

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

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

NSUserDefaults
中设置值,如下所示:

NSLog(@"SchoolName is: %@",[NSUserDefaults standardUserDefaults]objectForKey:SCHOOL_NAME]);
存储值后同步
NSUserDefaults

synchronize
定期自动调用
NSUserDefaults
的方法,仅当您无法等待自动同步时才使用此方法,如果您希望频繁或短时间使用
NSUserDefaults
中的值,则使用
synchronize
(正如Russell所指出的)

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

NSLog(@"SchoolName is: %@",[NSUserDefaults standardUserDefaults]objectForKey:SCHOOL_NAME]);
如果实际存在该值,那么下面的代码应该可以正常工作:

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

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

那么,您的userDefaults可能没有关键学校名称的值。调试logging@Joshua:事实上,我是iOS开发新手。你能告诉我如何通过日志进行调试吗@Joshua:以及该值如何显示在UI alert中,而不是在同一函数中它旁边的标签中。您可以使用NSLog。i、 e.NSLog(@“userdefault的值为:%@,[NSUserDefaults standardUserDefaults]objectForKey:SCHOOL_NAME]);请不要再使用
UIAlertView
。那么您的UserDefault可能没有您的重点学校名称的值。调试logging@Joshua:事实上,我是iOS开发新手。你能告诉我如何通过日志进行调试吗@Joshua:以及该值如何显示在UI alert中,而不是在同一函数中它旁边的标签中。您可以使用NSLog。i、 e.NSLog(@“userdefault的值为:%@,[NSUserDefaults standardUserDefaults]objectForKey:SCHOOL_NAME]);请不要再使用
UIAlertView
。NSLog显示NSUserDefaults中有值。但是lblSchool.text仍然没有显示值您不再需要同步NSUserDefaults
developer.apple.com/reference/foundation/userdefaults/1414005 synchronize
,因为此方法会定期自动调用,因此只有在无法等待自动同步时才使用此方法(例如,如果您的应用程序即将退出)或者,如果您想将用户默认值更新为磁盘上的默认值,即使您没有做任何更改。NSLog显示NSUserDefaults中有值。但lblSchool.text仍不显示值您不需要再同步NSUserDefaults
developer.apple.com/reference/foundation/userdefaults/1414005 synchronize
,因为他的方法会定期自动调用,仅当您无法等待自动同步时(例如,如果您的应用程序即将退出),或者即使未做任何更改,也要将用户默认值更新为磁盘上的值时,才使用此方法。