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仍然没有显示值您不再需要同步NSUserDefaultsdeveloper.apple.com/reference/foundation/userdefaults/1414005 synchronize
,因为此方法会定期自动调用,因此只有在无法等待自动同步时才使用此方法(例如,如果您的应用程序即将退出)或者,如果您想将用户默认值更新为磁盘上的默认值,即使您没有做任何更改。NSLog显示NSUserDefaults中有值。但lblSchool.text仍不显示值您不需要再同步NSUserDefaultsdeveloper.apple.com/reference/foundation/userdefaults/1414005 synchronize
,因为他的方法会定期自动调用,仅当您无法等待自动同步时(例如,如果您的应用程序即将退出),或者即使未做任何更改,也要将用户默认值更新为磁盘上的值时,才使用此方法。