1

ばかげた問題があります。

辞書に挿入するさまざまなタイプの値があります。問題は、ディクショナリの外の値が有効で、内部の値がnullであるということです。

 NSString *name = [NSString stringWithFormat:@"%@",_nameTextField.text];
 NSString *icon = [NSString stringWithFormat:@"%i",itemIcon];

 NSDictionary *dictionary = [[NSDictionary alloc]initWithObjectsAndKeys:name,@"name",
icon,@"icon", nil];

NSLog(@"string %@ dictionary %@",icon,[dictionary objectForKey:@"icon"]);

ログ

string 18 dictionary (null)

この問題は2番目の値でのみ発生し、最初の「名前」では発生しません。それでもプロセスは同じです。

さらに奇妙なことに、このコードは別のクラスで使用しており、同一であり、うまく機能します。

今、私は疑問に思います。Xcodeで問題になる可能性がありますか?

どうもありがとう

4

1 に答える 1

7

initWithObjectsAndKeys(またはdictionaryWithObjectsAndKeys:)を使用して辞書を作成する場合、nil値は引数の終わりを示します。

これはnil、引数リストに明示的に入力する場合(最後に全員が行うように)、またはnil値を持つ変数が使用される場合に当てはまります。

NSSString *name = nil;
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:name, @"name", nil];

最初の引数が。であるため、これにより空の辞書が得られますnil。他の議論はどれも見られていません。

于 2013-02-23T01:03:56.780 に答える