0

注釈がマップビューに常に追加されるとは限らないという奇妙なバグがあります。注釈を追加するコードは次のとおりです。

- (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);
}

最初のログ (ループ内) には、追加される注釈mapViewvehiclePinsmapview.annotations の現在の状態が表示されます。このログの結果は次のとおりです。

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 つの要素) 以降は変更されず、2 番目のログの驚くべき結果は次のとおりです。

annotations added 3/31

現在Xcode 5を使用していますが、xcode 4.6を使用しても問題はありませんでした

何か不足していますか?

編集:また、私はチェックしましたがCLLocationCoordinate2DIsValid、それらは有効であり、異なる座標です。

4

2 に答える 2

0

これで修正されました。私がしたことは、アプリをアンインストールしてビルドをクリーンアップし、再度コンパイルして作業を開始したことです。XCode 5でこの種の問題が2度目に発生します。

于 2013-10-11T02:07:28.300 に答える