NSMutableArray инициализация - PullRequest
2 голосов
/ 17 июля 2011

Я очень новичок в Objective C. Я прочитал много связанных тем, но не смог найти решение.Я использую NSMutableArray, и alloc и init в следующем режиме:

events = [[NSMutableSet alloc] init];

Это правильно?Таким образом, я могу без проблем добавлять объекты в массив, но когда я повторяю или читаю, я получаю SIGABRT: unrecognized selector sent to instance.Попытка нескольких модификаций, лучшее, что я мог получить, было другим исключением: EXC_BAD_ADDRESS.Строка, которую я использую для чтения массива:

Event *event = [events objectAtIndex:1];

Заранее спасибо.

Младший

Ответы [ 3 ]

3 голосов
/ 17 июля 2011

вы сказали, что используете NSMutableArrays, но затем инициализировали набор, попробуйте использовать:

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

наборы не отвечают на objectAtIndex, потому что они неупорядочены.если вам нужен объект из набора, вы можете вызвать anyObject для него.или вы можете использовать перечисление, чтобы пройти все объекты.например,

id obj=[events anyObject];

или

for(id obj in events){
    NSLog(@"%@",obj);
}        
0 голосов
/ 17 июля 2011
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];
}

Вот так.

0 голосов
/ 17 июля 2011

Что происходит между?Помните, что массивы индексируются нулем;там не может быть двух элементов.Попробуйте использовать метод подсчета.

...