2013-03-14 2 views
-1

У меня есть изменяемый массив:Objective C removeAllObjects NSMutableArray

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

Когда я называю IBAction (который можно было бы назвать 1000 раз, если пользователь сохранил прижимая я думаю) он помещает контакты на карте, хранящейся в этот массив.

Я назвал это после создания массива:

[locations removeAllObjects] 

Однако контакты все еще появляются на верхней части друг с другом, имеет это правильно очистил массив?

+1

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

+0

отзыв аннотация (pin) метод после получения нового массива – iPatel

+0

@ RichardJ.RossIII Ahh Я не думал об этом! Я попробую найти код, чтобы удалить его –

ответ

2
- (void)removeAllAnnotations { 

    NSMutableArray *annotationsToRemove = [NSMutableArray arrayWithCapacity:[self.map.annotations count]]; 
    for (int i = 0; i < [self.map.annotations count]; i++) { 

      [annotationsToRemove addObject:[self.map.annotations objectAtIndex:i]]; 
    } 

    [self.map removeAnnotations:annotationsToRemove]; 
} 
+0

Это, к счастью, не отвечает на заданный вопрос. ОП не указал, действительно ли он использует вид карты или какой вид карты он использует, поэтому это не отвечает на вопрос. –

+0

Спасибо за ответ и извинения за очень неопределенный вопрос. Я ценю время, которое все взяли, и боль в бане вызвала. Надеюсь, вы поймете, что это сложно для меня в это время, поскольку это в значительной степени моя первая неделя в Objective C. –

1

добавьте следующую строку кода под «removeAllObjects» линии

[mapView removeAnnotations:mapView.annotations]; 
+0

Это, к счастью, не отвечает на заданный вопрос. ОП не указал, действительно ли он использует вид карты или какой вид карты он использует, поэтому это не отвечает на вопрос. –

+2

чувак, вы читали вопрос .. прочитайте его .. у него есть строка «он помещает булавки на карту» .. держите свои глаза открытыми .. – Rahul

0

Это не из-за оформления объектов в массиве. Вы должны удалить аннотации из mapView, позвонив

[mapViewObjectName removeAnnotions: locations];

Затем все аннотации, которые вы выделили в массиве местоположений, будут удалены.

Thank You

+0

Это, к счастью, не отвечает на заданный вопрос. ОП не указал, действительно ли он использует вид карты или какой вид карты он использует, поэтому это не отвечает на вопрос. –

Смежные вопросы