我有一个奇怪的错误,注释并不总是被添加到我的mapview,我添加注释的代码是:
- (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个日志,第一个(在循环内)显示将添加哪些注释以及mapview的当前状态。注释。该日志的结果是:
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时没有问题
我错过了什么吗?
编辑:我也检查了CLLocationCoordinate2DIsValid
,它们是有效的,不同的坐标。
答案 0 :(得分:0)
我认为原因是您尝试多次将相同的注释添加到地图和vehiclePins
数组中。
对于数组,这没有问题,因为数组可以多次存储同一个对象。但是注释不是这样的:每个注释对象只存储一次。
答案 1 :(得分:0)
现在已经修好了。我做的是卸载应用程序并清理构建,再次编译并开始工作。第二次,XCode 5发生了这种问题。