2012-11-19 141 views
0

所以我已經實現了我的viewForAnnotation這樣viewForAnnotation返回nil

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation { 
static NSString *identifier = @"id"; 

if ([annotation isKindOfClass:[infl8Node class]]) { 
    NSLog(@"Creating a pin"); 
    MKPinAnnotationView *annotationView = (MKPinAnnotationView *) [_mapView dequeueReusableAnnotationViewWithIdentifier:identifier]; 
    if (annotationView == nil) { 
     annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier]; 
    } else { 
     annotationView.annotation = annotation; 
    } 

    annotationView.enabled = YES; 
    annotationView.canShowCallout = YES; 

    return annotationView; 
} 

return nil; 
} 

但是我仍然遇到了此問題時拋出錯誤:

2012-11-18 22:12:35.608 Infl8[5960:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[infl8Node coordinate]: unrecognized selector sent to instance 0x846f460' 

有誰知道這可能是造成這個錯誤?我已經將其追溯到註解屬於類MKUserLocation的情況。

編輯: 這裏是infl8Node.h文件:

#import <UIKit/UIKit.h> 
#import <CoreLocation/CoreLocation.h> 
#import <MapKit/MapKit.h> 

@interface infl8Node : NSObject <MKAnnotation> 

@property (nonatomic, strong) NSString *accountName; 
@property (nonatomic, strong) NSString *status; 
@property (nonatomic, strong) CLLocation *location; 
@property (nonatomic, strong) NSDictionary *address; 

- (id) initWithDictionary:(NSDictionary *)dict; 
- (MKMapItem *) mapItem; 
@end 
+0

實際上,該錯誤表示infl8Node類沒有實現座標屬性。你可以發佈infl8Node.h嗎? – Anna

+0

..並確保它#輸入正確 –

回答

0

實現了MKAnnotation協議必須實現coordinate屬性的類。

infl8Node類似乎不這樣做,這就是爲什麼你會得到那個unrecognized selector錯誤。

至少,該類將需要實現一個coordinate方法,該方法返回與其位置關聯的座標。