Egyedi kommentár „elérése ismeretlen getter módszer”

szavazat
0

Csináltam egy egyéni MKAnnotation osztály, MapLocation. Én gond nélkül meg, illetve egyre tulajdonságokkal, kivéve ezt a módszert, hogy hozzon létre egy MKAnnotationView. Meg kell csinálni itt, mivel ez állítólag, hogy néz ki a hely típusát a kommentár indexében, és válassza ki az egyik a család egyéni kommentár képeket a annotationView.

Számos kísérlet után felállítása egyéni get és alkotóinak MapLocation.h és .m, én főtt le oda, ahová én nem is másolni a (kötelező) getter, cím, nevezd át title2, és meg kell kérni a visszatérési érték . Ez a kód:

-(MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation {
static NSString *placemarkIdentifier=@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;

}

A 4. sor, cím vissza rendesen, de az 5. sorban azon felhívását, hogy a másolt módszer adja a hibaüzenetet a témában.

Én nézni a XCode docs, de én valószínűleg csak nem kapok, hogyan állapítsa meg, így ez a módszer látja. Fura, hogy látja a cím getter, de nem a title2 példányt.

A kérdést 18/05/2010 15:42
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
3

Próbálja meg módosítani a vonal pont jelöléssel a következő:

NSString *str2=[annotation title2];

és a hiba meg kell szűnnie.

Mi történik, hogy a fordító azt mondták, hogy feljegyzés egy MKAnnotation. Az a tény, hogy tudja, milyen más ez van az irrelevent; a fordító nem pszichikai - csak azt ismeri, hogy kommentár követi a MKAnnotation protokoll, semmi több. Ennek az az oka, hogy úgy látja, a cím getter anyaghiány a cím határozza meg MKAnnotation.

Azt is rögzíti ezt a segítségével a szereplők:

MapLocation *mapLocation = (MapLocation *)annotation;

Most lehet mondani,

NSString *str2=mapLocation.title2;

mert már azt mondta a fordító, hogy mapLocation egy MapLocation obejct.

Válaszolt 18/05/2010 15:48
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more