2012-02-29 191 views
2

我嘗試在我的方法中將對象添加到我的NSMutable數組中,但不斷收到錯誤。它工作,如果我在init中添加對象。在我嘗試執行代碼之前,並沒有說任何事情都是錯誤的。爲什麼我無法在我的方法中訪問NSMutable Array?

這低於#進口東西,其中我聲明兩個陣列:

NSMutableArray *actions1, *actions2; 

這是在初始化:

actions1 = [NSMutableArray array]; 

在這裏,我試圖1添加到陣列:

- (void) storeAction:(int) action { 
[actions1 addObject:@"1"]; 
} 

如前所述,相同的代碼在int中工作。

我也希望它存儲聲明「行動」的int值,但這似乎也沒有工作。

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

關於[ADDOBJECT:@ 「%d」,作用]; - 請詳細說明它是什麼意思「似乎也沒有工作」..發生了什麼?順便說一句 - 爲什麼你不存儲int作爲一個NSNumber對象? ([NSNumber numberWithInt:1]) – Guys 2012-02-29 22:26:28

回答

5

[NSMutableArray array];將返回一個autoreleased對象,由您嘗試訪問它的時候,它很可能已經釋放。改爲嘗試[[NSMutableArray alloc] init];。而且,你應該緊急檢查memory management rules

+0

我更喜歡這[[NSMutableArray數組]]保留],再加上你解釋了爲什麼你的解決方案工作。 +1 – 2012-02-29 20:55:09

+0

謝謝!明天會讀。任何想法爲什麼這不起作用? '[addObject:@「%d」,action];' – Liuhu 2012-02-29 22:06:40

+1

'addObject'需要一個字符串,並且不會格式化。你想要:'[array addObject:[NSString stringWithFormat:@「%d」,action]];' – gregheo 2012-02-29 23:00:32

2

嘗試這個代碼

actions1 = [[NSMutableArray alloc] init]; 

希望這有助於。

0

替代地,在頭文件:@property(nonatomic, strong)NSMutableArray *actions1;

然後在植入文件:`@synthesize actions1 = _actions1;

然後你就可以訪問陣列,爲self.actions1

相關問題