2012-11-22 38 views
1

我有这样的:nslog可以打印变量,但变量不具有值?

NSUserDefaults *defauts = [NSUserDefaults standardUserDefaults]; 
    NSString *namestr = [defauts objectForKey:@"savednamestring"]; 

    NSLog(@"%@",namestr); 
    [unusedtext setText:namestr]; 
    NSLog(@"%@",unusedtext); 
    NSLog(@"%@",unusedtext.text); 

现在,第一nslog打印出的namestr的内容,比如 “杰克”。

但是第二个nslog和第三个nslog都给出null

当我试图通过namestr到实体它给了我一个unrecognized selector sent to instance错误,我知道这是因为 namestr不传递任何进入实体,而是如何nslog打印 出namestr在首位。我是否需要将其转换为 某种格式才能使其工作?

+0

什么是'unusedText'?一个NSString? – sidyll

回答

3

unusedText可能未初始化。

0

这是因为你还没有初始化unusedtext变量。

如果是的NSString然后做这个

NSUserDefaults *defauts = [NSUserDefaults standardUserDefaults]; 
NSString *namestr = [defauts objectForKey:@"savednamestring"]; 

NSLog(@"%@",namestr); 
unusedtext = [NSString stringWithString:namestr]; 
NSLog(@"%@",unusedtext); 
NSLog(@"%@",unusedtext.text); 

,如果它是一个UITextView或比的UITextField做到这一点,而不是!

NSUserDefaults *defauts = [NSUserDefaults standardUserDefaults]; 
NSString *namestr = [defauts objectForKey:@"savednamestring"]; 

NSLog(@"%@",namestr); 
UITextField *unusedtext = [[UITextField alloc] init]; 
[unusedtext setText:namestr]; 
NSLog(@"%@",unusedtext); 
NSLog(@"%@",unusedtext.text); 

希望有帮助!

+0

感谢球员,我明白了,但主要的是当我尝试将它传递到实体它使我无法识别的选择器发送到实例错误,我尝试以下两种方式: – PotHeadProgramer

+0

@ user1844961什么是unusedtext的类型?你在综合unusedtext和它的文本属性吗? –

1

我假设unusedtext是一个UILabel。

有几个问题:

  • 您使用的界面生成器或故事板?如果是,你是否将var与组件链接起来?
  • 如果你不使用IB或Storyboard,这个“unusedtext”初始化了吗?
  • 您使用ARC吗?如果否,是不是unusedtext autorelease?或者在你的代码之前发布?
  • 如果您使用ARC,是否将未使用的文本标记为STRONG?

希望能提供帮助!