为什么我无法在我的方法中访问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];
答
[NSMutableArray array];
将返回一个autoreleased对象,由您尝试访问它的时候,它很可能已经释放。改为尝试[[NSMutableArray alloc] init];
。而且,你应该紧急检查memory management rules。
答
尝试这个代码
actions1 = [[NSMutableArray alloc] init];
希望这有助于。
答
替代地,在头文件:@property(nonatomic, strong)NSMutableArray *actions1;
然后在植入文件:`@synthesize actions1 = _actions1;
然后你就可以访问阵列,为self.actions1
关于[ADDOBJECT:@ “%d”,作用]; - 请详细说明它是什么意思“似乎也没有工作”..发生了什么?顺便说一句 - 为什么你不存储int作为一个NSNumber对象? ([NSNumber numberWithInt:1]) – Guys 2012-02-29 22:26:28