2013-10-10 5 views
0

У меня есть странная ошибка с аннотациями не всегда добавляемых к моему MapView, мой код, который добавляет аннотации:MAPview addAnnotation не всегда работает

- (void)plotVehicles { 

NSMutableArray *currentVehicles = [[MyApplication getInstance] currentVehicles]; 

for (Vehicle * veh in currentVehicles) { 
    VehiclePin * vehiclePin = [[VehiclePin alloc] initWithVehicle:veh]; 
    [self.mapView addAnnotation:vehiclePin]; 
    [self.vehiclePins addObject:vehiclePin]; 
    NSLog(@"current ann %i %@ %@",self.mapView.annotations.count,vehiclePin,self.mapView.annotations); 
} 
NSLog(@"annotations added %i/%i",self.mapView.annotations.count,self.vehiclePins.count); 
} 

Я добавляю аннотацию к mapView и vehiclePins и иметь 2 log, первый (внутри цикла) показывает, какие аннотации будут добавлены, и текущее состояние mapview.nnotes. Результат этого бревна:

current ann 1 <VehiclePin: 0x1573c470> (
    "<VehiclePin: 0x1573c470>" 
) 

current ann 2 <VehiclePin: 0x9e7f490> (
    "<VehiclePin: 0x1573c470>", 
    "<VehiclePin: 0x9e7f490>" 
) 
current ann 2 <VehiclePin: 0x9e7f430> (
    "<VehiclePin: 0x1573c470>", 
    "<VehiclePin: 0x9e7f490>" 
) 
current ann 3 <VehiclePin: 0x1573f730> (
    "<VehiclePin: 0x1573c470>", 
    "<VehiclePin: 0x9e7f490>", 
    "<VehiclePin: 0x1573f730>" 
) 
current ann 3 <VehiclePin: 0x1573f870> (
    "<VehiclePin: 0x1573c470>", 
    "<VehiclePin: 0x9e7f490>", 
    "<VehiclePin: 0x1573f730>" 
) 
... 

В общей сложности 31 аннотации, но массив никогда не изменяется после этой точки (3 элементов) и не столь неожиданный результат второго бревна:

annotations added 3/31 

В настоящее время я использую Xcode 5, не было проблемы при использовании xcode 4.6

Я что-то упустил?

EDIT: Также я проверил с CLLocationCoordinate2DIsValid, и они действительны, и разные координаты.

+0

Is removeAnotation называется в любом месте приложения? – Anna

+0

Нет, я удалил практически любое другое взаимодействие с картой, чтобы попытаться изолировать проблему, оказалось, что ее решили другим способом. Я написал ответ об этом. – rr1g0

ответ

0

Это исправлено. Я сделал то, что удалил приложение и очистил сборку, скомпилировал ее и начал работать. Второй раз такая проблема возникает со мной с XCode 5.

0

Я думаю, что причина заключается в том, что вы пытаетесь добавить то же самое, что и на аннотации к карте и в массив vehiclePins.
Для массива это не проблема, так как массив может хранить один и тот же объект несколько раз. Но это не так для аннотации: каждый объект аннотации хранится только один раз.

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