NSMutableArray初始化

时间:2011-07-16 23:18:05

标签: objective-c nsmutablearray init

我非常关注目标C.我已经阅读了很多相关但无法获得解决方案的主题。 我正在使用NSMutableArray,并通过以下模式进行alloc和init:

events = [[NSMutableSet alloc] init];

是不是?通过这种方式,我可以毫无问题地向对象添加对象,但是当我迭代或阅读时,我得到了SIGABRT: unrecognized selector sent to instance。尝试了几次修改,我能得到的最好的是另一个例外:EXC_BAD_ADDRESS。我用来读取数组的行是:

Event *event = [events objectAtIndex:1];

提前致谢。

小型

3 个答案:

答案 0 :(得分:3)

你说你正在使用NSMutableArrays,但是然后初始化了一个集合,尝试使用:

NSMutableArray *events = [[NSMutableArray alloc] init];

set不响应objectAtIndex,因为它们是无序的。如果你想要一个对象超出集合,你可以调用它上面的anyObject。或者您可以使用枚举来遍历所有对象。 例如

id obj=[events anyObject];

for(id obj in events){
    NSLog(@"%@",obj);
}        

答案 1 :(得分:0)

两者之间发生了什么?请记住,数组是零索引的;那里可能没有两个元素。尝试使用count方法。

答案 2 :(得分:0)

events = [[NSMutableArray alloc] init];
[events addObject:event1];
[events addObject:event2]

for (int i = 0; i < [events count]; i++) {
    Event *event = (Event)[events objectAtIndex:i];
    NSLog("Event: %@", event);
    [event release];
}

喜欢这个。