1

私はこれを持っています:

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

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

ここで、最初に、たとえば「Jack」nslogのコンテンツを出力します。namestr

しかし、2番目nslogと3番目nslogは両方ともを与えnullます。

namestrエンティティに渡そうとするとエラーが発生します。エンティティに何も渡さないunrecognized selector sent to instanceためです が、そもそもどのように印刷するのかがわかります。そして、それを機能させるために、それをある種のフォーマットに変換する必要がありますか?namestrnslognamestr

4

3 に答える 3

3

unusedTextおそらく初期化されていません。

于 2012-11-22T12:21:21.067 に答える
1

未使用のテキストはUILabelだと思います。

いくつかの質問があります:

  • Interface BuilderまたはStoryboardを使用していますか?はいの場合、変数をコンポーネントにリンクしましたか?
  • IBまたはストーリーボードを使用していない場合、この「未使用のテキスト」は初期化されていますか?
  • ARCを使用していますか?いいえの場合、未使用のテキストは自動リリースされませんか?または、コードの前にリリースされましたか?
  • ARCを使用している場合、未使用のテキストはSTRONGとしてマークされていますか?

お役に立てば幸いです。

于 2012-11-22T13:34:55.283 に答える
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);

それが役立つことを願っています!

于 2012-11-22T12:25:06.017 に答える