0

NSDictionary表示したいパラメータがいくつかありますUITextField。しかし

firstname.text = [userdata objectForKey:@"firstname"];

例外をスローします。NSLogを使用する[userdata objectForKey:@"firstname"];と、正しい値が表示されます。

これはスローされた例外です:

2012-07-05 15:55:56.533プロジェクト[13642:f803]-[__ NSArrayM _isNaturallyRTL]:認識されないセレクターがインスタンス0x68c4e20に送信されました2012-07-05 15:55:56.534プロジェクト[13642:f803]***終了予定のアプリキャッチされない例外'NSInvalidArgumentException'、理由:'-[__ NSArrayM _isNaturallyRTL]:認識されないセレクターがインスタンス0x68c4e20に送信されました'

使用する場合

firstname.text = [NSString stringWithFormat:@"%@",[userdata objectForKey:@"firstname"]];

動作しますが、値を角かっこで囲みます。ここで何が問題になっているようですか?そして、なぜ最初の試みがうまくいかないのですか?

4

3 に答える 3

2
firstname.text = [[userdata objectForKey:@"firstname"]stringValue];

これは何か違いがありますか?

于 2012-07-05T14:30:58.733 に答える
2

[userdata objectForKey:@"firstname"]目的の文字列のみを含む配列を返しているように見えます。「firstname」の値を設定した場所を確認し、それを目的の文字列に変更します。

于 2012-07-05T14:33:40.800 に答える
2
_isNaturallyRTL

文書化されていないNSStringメソッドです。のようだ

[userdata objectForKey:@"firstname"]

はNSMutableArray(クラス名から推測)であり、文字列として使用しようとしています。%@フォーマット指定子でフォーマット文字列を使用すると、-descriptionフォーマット/印刷されるオブジェクトのメソッドが呼び出され(NSLogも同様)、NSArrayの説明は次のようなNSStringになります。

[ "description of first element", "description of second element" ]

など、それがテキストを角かっこで囲んでもクラッシュしない理由です。

全体として、使用する

[[userdata objectForKey:@"firstname"] objectAtIndex:0]

代わりは。

于 2012-07-05T14:35:29.773 に答える