2012-02-29 18 views
2

私のメソッドでNSMutable配列にオブジェクトを追加しようとしましたが、エラーが続いています。 initにオブジェクトを追加すると動作します。コードを実行しようとするまで、何かが間違っているとは言いません。私のメソッドでNSMutable配列にアクセスできないのはなぜですか?

NSMutableArray *actions1, *actions2; 

これはINITである:

- (void) storeAction:(int) action { 
[actions1 addObject:@"1"]; 
} 
:私は配列に1を追加しよう。ここ

actions1 = [NSMutableArray array]; 

これは、私は2つの配列を宣言どこの#importのものを下回っています

先ほど述べたのと同じコードがintで機能します。

また、 "action"と宣言されたint値を格納したいと思っていますが、これはどちらかと思われませんでした。

[addObject:@"%d", action]; 
+0

としてあなたのアレイにアクセスすることができます[のaddObject:@ "%D"、アクション]; - 何が起こっているのかは、 "どちらもうまくいかなかった"ということを具体的に教えてください。とBTW - なぜあなたはNSNumberオブジェクトとしてintを格納していないのですか? ([NSNumber numberWithInt:1]) – Guys

答えて

5

[NSMutableArray array];あなたがそれにアクセスしようとする時点で、それはすでに最も可能性の高い割り当てが解除され、autoreleasedオブジェクトを返します。代わりにを試してください。そして、あなたは緊急にmemory management rulesを確認する必要があります。

+0

私はこれを[[NSMutableArray array] retain]にすることをお勧めします。 +1 –

+0

ありがとう!明日それを読むでしょう。なぜこれがうまくいかないのでしょうか? '[addObject:@"%d "、action];' – Liuhu

+1

'addObject'は文字列を取り、書式設定を行いません。あなたがしたい: '[配列addObject:[NSString stringWithFormat:@"%d "、アクション]];' – gregheo

2

actions1 = [[NSMutableArray alloc] init]; 

このコードを試してみてはこの情報がお役に立てば幸いです。

0

また、あなたのヘッダファイル内:@property(nonatomic, strong)NSMutableArray *actions1;

その後注入ファイル内: `@synthesize actions1 = _actions1。

次に、あなたについてself.actions1

関連する問題