0

私はコードを持っています:

if (self.annotations) [self.mapView addAnnotations:self.mapView.annotations];
NSLog(@"mapView: %@, anos:%@",self.mapView,self.mapView.annotations);

そして、次の出力フォーム ログを取得します。

2012-04-26 14:35:53.823 FlickrClient[46441:11603] mapView: <MKMapView: 0x79c8b50; frame = (0 0; 320 367); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x79c62b0>>, anos:(
)

したがって、注釈が追加されていないことを理解している限り、mapView このコードの前にも、次のログ記録があります。

for (id i in self.annotations)
{
    NSLog(@"%@, %i",i,[i conformsToProtocol:@protocol(MKAnnotation)]);
}

そしてそれは与えます:

...
2012-04-26 14:35:53.766 FlickrClient[46441:11603] <TopPlaceAnnotation: 0x6d8a590>, 1
2012-04-26 14:35:53.767 FlickrClient[46441:11603] <TopPlaceAnnotation: 0x6d8a5a0>, 1
2012-04-26 14:35:53.767 FlickrClient[46441:11603] <TopPlaceAnnotation: 0x6d8a5b0>, 1
2012-04-26 14:35:53.819 FlickrClient[46441:11603] <TopPlaceAnnotation: 0x6d8a5c0>, 1
2012-04-26 14:35:53.819 FlickrClient[46441:11603] <TopPlaceAnnotation: 0x6d8a5d0>, 1
2012-04-26 14:35:53.819 FlickrClient[46441:11603] <TopPlaceAnnotation: 0x6d8a5e0>, 1
...

だからself.annotations存在し、すべてに準拠していMKAnnotationます。

何か不足していますか?

4

1 に答える 1

6

小さなミスだと思いますが、

この行:

if (self.annotations) [self.mapView addAnnotations:self.mapView.annotations];

次のようにする必要があります。

if (self.annotations) [self.mapView addAnnotations:self.annotations];
于 2012-04-26T11:59:02.247 に答える