У меня есть странная ошибка с аннотациями не всегда добавляемых к моему 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
, и они действительны, и разные координаты.
Is removeAnotation называется в любом месте приложения? – Anna
Нет, я удалил практически любое другое взаимодействие с картой, чтобы попытаться изолировать проблему, оказалось, что ее решили другим способом. Я написал ответ об этом. – rr1g0