2012-11-22 83 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?

希望能提供幫助!