CLLocation latitude, longtitude

  • CLLocation latitude, longtitude

    Hallo,

    ich habe folgendermaßen die userLocation usw. gesetzt um die Entfernung zwischen Punkten zu errechnen usw.

    Quellcode

    1. Koordinate *kunde = [[Koordinate alloc] init];
    2. kundenPoints = [[NSMutableArray array] retain];
    3. standPunkt = newLocation;
    4. for(int i = 0; i<[eventPoints count]; i++){
    5. kunde = [eventPoints objectAtIndex:i];
    6. CLLocation *userLoc = [[CLLocation alloc] initWithLatitude:kunde.latitude longitude:kunde.longtitude];
    7. double distance = [newLocation getDistanceFrom:userLoc] / 1000;
    8. if(distance <= 100000){
    9. [kundenPoints addObject:kunde];
    10. }else {
    11. }
    Alles anzeigen


    nun will ich aber die membervariable "standpunkt" in einer anderen Klasse verwenden, um dort die latitude und longtitude rauszubekommen?
    habe sämtliches schon probiert komme aber auf keine lösung?!

    gruß Marco
  • Trotz zwei Fragezeichen ist in deinem Post irgendwie keine Frage enthalten. :p

    Ich schätze mal sie lautet: "Wie Tausche ich Daten klasseninstanzübergreifend aus?"
    Eine Frage die ehrlich gesagt verwundert wenn du schon mit so spezifische Dingen arbeitest...

    Sie ist auch nicht allgemeingültig zu beantworten.

    Wenn es sich um UI Elemente handelt könnte eine iVar in einem ViewController der logische Schritt sein.
    Wenn nicht musst du eben einen anderen Schnittpunkt der Klassen suchen möglichst auch Sinn macht.

    Sprich eine Übergabe eines Wertes einer Methode zu einer Methode in einer anderen Klasse, jedoch in der selben View, sollte eher über den ViewController stattfinden, statt übers App Delegate.

    Nicht alles was möglich ist, ist auch die feine englische Art. ;)
  • RE: CLLocation latitude, longtitude

    Original von marco_mn
    habe sämtliches schon probiert komme aber auf keine lösung?!

    Na, wenn Du sämtliches schon probiert hast, dann geht's wohl nicht. ;)

    Spaß beiseite. Zugriff auf Instanzvariablen läuft immer über Accessoren.

    Quellcode

    1. [object message];

    Übergabe von Werten an Instanzvariablen läuft auch über Accessoren.

    Quellcode

    1. [object setMessage:value];
    Michael

    Edit: Parameter hinzugefügt.
  • ja klar das ist mir schon logisch, greif ja auf einige andere Instanzvariablen in dieser Klasse so zu!

    nur ist hier das Problem dass die userLocation folgendermaßen implementiert ist:

    Quellcode

    1. - (void)locationManager:(CLLocationManager *)manager
    2. didUpdateToLocation:(CLLocation *)newLocation
    3. fromLocation:(CLLocation *)oldLocation{
    4. standPunkt = newLocation;


    standPunkt ist die Instanzvariable, ich weiß nur nicht wie ich in der anderen Klasse auf die Latitude und longtitude komme, weil es ist ja keine CLLocationCoordinate2D sondern nur CLLocation???
  • Gibt mir auch den TERMINATING_UNCAUGHT_ECXEPTION wobei die Konsole folgendes anzeigt:

    2010-03-12 07:54:25.857 MultipleViews[564:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFNumber coordinate]: unrecognized selector sent to instance 0x453ece0'
  • also so initialisiere ich standPunkt, ist für mich schon retain eigentlich:

    Quellcode

    1. CLLocation *standPunkt;
    2. @property (nonatomic, retain) CLLocation *standPunkt;


    und einen Wert gebe ich standPunkt so:


    Quellcode

    1. - (void)locationManager:(CLLocationManager *)manager
    2. didUpdateToLocation:(CLLocation *)newLocation
    3. fromLocation:(CLLocation *)oldLocation{
    4. standPunkt = newLocation;


    Da standPunkt von newLocation die Daten bekommt ist das schon eine CLLocation.