2012-03-15 8 views
1

私はこれを配列にするNSNumberを置くしようとしています:配列からNSNumberを読み取るにはどうすればよいですか?

NSNumber *n = [NSNumber numberWithInt:1]; 
[[array objectAtIndex:0] setValue:n forKey:@"1"]; 

は、それから私は、私はそれが配列からn.intValueを印刷したいアクションを、持っています。問題は、それが0の代わりに、私はそれを動作させるために、これを書き換えることができますどのように1

を印刷していることである

-(IBAction)action:(id)sender { 
NSNumber *n = [[array objectAtIndex:0 ] valueForKey:@"1"]; 
NSLog(@"%d",n.intValue); 
} 

:私はこのようにそれを書きましたか?

ありがとうございました。

答えて

1

あなたは、単にこの

NSMutableArray *array=[[NSMutableArray alloc] init]; 
NSNumber *n = [NSNumber numberWithInt:1]; 
[array addObject:n]; 
    NSLog(@"%@",[array objectAtIndex:0 ]); 
+0

おかげのように行うことができます読み取ることができ、最初の行は、私の問題を修正しました。 – Jason

0

アレイの最初のオブジェクトでsetValue:n forKey:@"1"を呼び出しています。これは配列にNSNumberオブジェクトを挿入しませんし、その配列に含まれるオブジェクトがそのキーに応答するとは思いません。だから、あなたが記録しているものは、実際にはゼロではないNSNumberオブジェクトのintValueです。だからあなたは0になっています。

あなたがする必要があるのはNSMutableArrayで、NSArrayではありません。あなたがNSNumber

として
NSNumber *n = [NSNumber numberWithInt:1]; 
[mutableArray insertObject:n atIndex:0]; 

を挿入し、それが

-(IBAction)action:(id)sender { 
NSNumber *n = [mutableArray objectAtIndex:0]; 
NSLog(@"%d",n.intValue); 
} 
関連する問題