Objective c NSMutableArray初始化

Objective c NSMutableArray初始化,objective-c,nsmutablearray,init,Objective C,Nsmutablearray,Init,我对目标C很生疏。我读过很多相关的话题,但没有找到解决方案。 我正在使用NSMutableArray,并通过以下模式使用alloc和init: events = [[NSMutableSet alloc] init]; 是这样吗?通过这种方式,我可以毫无问题地将对象添加到数组中,但是当我迭代或读取时,我得到了SIGABRT:unrecognized selector发送到instance。尝试几次修改,我能得到的最好结果是另一个例外:EXC\u BAD\u ADDRESS。我用来读取数组的行是

我对目标C很生疏。我读过很多相关的话题,但没有找到解决方案。 我正在使用NSMutableArray,并通过以下模式使用alloc和init:

events = [[NSMutableSet alloc] init];
是这样吗?通过这种方式,我可以毫无问题地将对象添加到数组中,但是当我迭代或读取时,我得到了
SIGABRT:unrecognized selector发送到instance
。尝试几次修改,我能得到的最好结果是另一个例外:
EXC\u BAD\u ADDRESS
。我用来读取数组的行是:

Event *event = [events objectAtIndex:1];
提前谢谢


少年

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

您说过您正在使用NSMutableArray,但随后初始化了一个集合,请尝试使用:

NSMutableArray *events = [[NSMutableArray alloc] init];
集合不响应objectAtIndex,因为它们是无序的。如果要从集合中取出一个对象,可以调用该对象上的任何对象。也可以使用枚举遍历所有对象。 乙二醇

events=[[NSMutableArray alloc]init];
[events addObject:event1];
[事件添加对象:事件2]
对于(int i=0;i<[事件计数];i++){
Event*Event=(Event)[events objectAtIndex:i];
NSLog(“事件:%@”,事件);
[事件发布];
}

像这样。

Hm.你说的是
NSMutableArray
但是
NSMutableSet alloc
?不客气。如果这解决了您的问题,请勾选“正确”。)
id obj=[events anyObject];
for(id obj in events){
    NSLog(@"%@",obj);
}        
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];
}