我非常关注目标C.我已经阅读了很多相关但无法获得解决方案的主题。 我正在使用NSMutableArray,并通过以下模式进行alloc和init:
events = [[NSMutableSet alloc] init];
是不是?通过这种方式,我可以毫无问题地向对象添加对象,但是当我迭代或阅读时,我得到了SIGABRT: unrecognized selector sent to instance
。尝试了几次修改,我能得到的最好的是另一个例外:EXC_BAD_ADDRESS
。我用来读取数组的行是:
Event *event = [events objectAtIndex:1];
提前致谢。
小型
答案 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];
}
喜欢这个。