我製作了一個自定義的MKAnnotation類MapLocation。我沒有麻煩設置或獲取屬性,除了在這個方法來創建一個MKAnnotationView。我需要在這裏做,因爲它應該從註解的索引中查找位置類型,併爲annotationView選擇一系列自定義註釋圖像。自定義註釋'訪問未知的getter方法'
經過多次嘗試在MapLocation.h和.m中設置自定義getter和setter,我將它歸結到我無法複製(強制性)getter,title的地方,將其重命名爲title2,並嘗試得到它的回報價值。這是我的代碼:
-(MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation {
static NSString *[email protected]"Map Location Identifier";
NSString *str1=annotation.title;
NSString *str2=annotation.title2;
if([annotation isKindOfClass:[MapLocation class]]) {
MKAnnotationView *annotationView=(MKAnnotationView *)[theMapView dequeueReusableAnnotationViewWithIdentifier:placemarkIdentifier];
if (annotationView==nil) {
annotationView=[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:placemarkIdentifier];
}
else
annotationView.annotation=annotation;
return annotationView;
}
return nil;
}
4號線,返回正確的標題,但5日線對複製的方法調用產生的主題中的錯誤信息。
我看過XCode文檔,但我可能只是沒有得到如何聲明它,所以這種方法看到它。奇怪的是,它看到標題獲得者,但不是title2副本。
當我看到你已經回答時,我實際上正在研究如何聲明MapLocation協議。因此,現在我的註釋有索引,可將它們鏈接到我需要的任何地方,並顯示該類型位置的正確圖像。謝謝! 雖然這並沒有工作(我曾嘗試過):NSString * str2 = [annotation title2]; 它說-title2是未知的。無助於在界面中聲明它。對於像我這樣的新手來說有點奇怪,「因爲編譯器不應該擔心消息,所以它們是運行時的」。我現在明白,如果沒有演員就會抱怨額外的屬性,謝謝! – 2010-05-18 15:42:20