CoreLocation in mehreren Views

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • CoreLocation in mehreren Views

    Hallo Forum-Mitglieder,

    ich habe eine Anfänger-Frage. Ich haben einen ViewController in dem ein CoreLocation-Delegate läuft. Ich möchte von diesem View in ein anderes View springen und ebenfalls das Delegate benutzen, ohne die gleiche .m & .h Datei benutzen zu müssen. Ich habe schon eine weile gegooglet, aber nichts gefunden. Hat jemand einen Tip oder ein Link für eine Tutorial?

    Mit freundlichen Grüssen
    D. Stachowiak
  • Hallo macmoonshine,

    vielleicht kannst du mir kurz helfen. Der erste ViewController beinhaltet des <CLLocationManagerDelegate>. In dem zweiten View habe folgende Zeilen hinzugefügt:

    Quellcode

    1. #import "CockpitViewController.h"

    Quellcode

    1. self.locationManager.delegate = self;


    Ich bekomme dann aber bei dem delegate folgende Fehlermeldung: Assigning to "id<CLLocationManagerDelegate>" from incompatible type "CockpitMapViewController *const_strong*

    Verstehe ich etwas falsch??
  • Danke macMoonshine für die schnelle Antwort. Habe noch nach einem Beispielprojekt gegaukelt. Hab das Prinzip verstanden. Jetzt habe ich aber noch ein kleines Problem.
    Und zwar habe ich das CLLocationManagerDelegate hinzugefügt. Ich benütze jetzt folgenden Code:

    Quellcode

    1. StandortDelegate *sampleProtocol = [[StandortDelegate alloc]init];
    2. sampleProtocol.delegate = self;
    3. sampleProtocol.locationManager.delegate = self;


    Bei dem locationManager.delegate bekomme ich wieder die folgende Fehlermeldung, mit der ich nichts anfangen kann!!

    Assigning to "id<CLLocationManagerDelegate>" from incompatible type "CockpitMapViewController *const_strong*

    Mit freundlichen GrüsseMit freundlichen Grüssen
    David
  • Hallo macMoonshine,

    ich komme nicht weiter. Bin leider auch noch Anfänger, daher ist es bestimmt nur ein blöder Fehler. Ich habe mal eine TestDelegate gebaut. Bekomme aber immer wieder den gleichen Fehler.

    .h

    Quellcode

    1. #import <Foundation/Foundation.h>
    2. #import <CoreLocation/CoreLocation.h>
    3. #import <MapKit/MapKit.h>
    4. @protocol StandortDelegate <NSObject>
    5. @required
    6. - (void) processCompleted;
    7. @end
    8. @interface StandortDelegate : NSObject <CLLocationManagerDelegate, MKMapViewDelegate>
    9. {
    10. // Delegate to respond back
    11. id <StandortDelegate> _delegate;
    12. }
    13. @property (nonatomic,strong) id delegate;
    14. @property (nonatomic, weak) CLLocationManager* locationManager;
    15. -(void)startSampleProcess; // Instance method
    16. @end
    Alles anzeigen


    .m

    Quellcode

    1. #import "StandortDelegate.h"
    2. @implementation StandortDelegate
    3. -(void)startSampleProcess{
    4. [NSTimer scheduledTimerWithTimeInterval:3.0 target:self.delegate
    5. selector:@selector(processCompleted) userInfo:nil repeats:NO];
    6. }
    7. @end


    Vielleicht kann mir jemand eine Tip geben oder eine Zeile schreiben welche ich vergesse.

    Danke
    David
  • Du hast ein Protokoll namens "StandortDelegate" definiert und gleichzeitig noch eine Klasse namens "StandortDelegate". Dein Delegate ist vom Typ "Protocol", damit ist die Fehlermeldung klar.

    Hast Du den Unterschied zwischen "Protocol" und "Interface" verstanden? Wenn nein -> nachlesen. Kommst Du aus der Java-Ecke? Wenn ja, ein "Protocol" in ObjC entspricht einem "Interface" in Java und ein "Interface" in ObjC entspricht in Java einer "Class".

    Tue Dir einen Gefallen und lese etwas wirklich einführendes. Alles andere ist ein rumstochern im Nebel.

    schönen Gruß

    gandhi