为什么我无法在我的方法中访问NSMutable Array?

问题描述:

我尝试在我的方法中将对象添加到我的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

[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

尝试这个代码

actions1 = [[NSMutableArray alloc] init]; 

希望这有助于。

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

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

然后你就可以访问阵列,为self.actions1