iPhone: предупреждение в циклическом импорте в MKAnnotation: метод не найден - PullRequest
1 голос
/ 18 февраля 2010

Я только что решил проблему циклической зависимости, используя переадресацию классов. Теперь я получаю предупреждение о том, что метод 'showSumDetails' не найден. Я не понимаю, почему это должно происходить вообще, любая помощь будет оценена. Включая немного кода здесь:

MyAnnotation.h

#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>
//#import "MyMapViewController.h" obviously this wasn't possible :-(
@class MyMapViewController;

@interface MyAnnotation : NSObject<MKAnnotation> {


    MyMapViewController* mapController;
}

MyMapViewController.h

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <MapKit/MKReverseGeocoder.h>
#import "MyAnnotation.h"

@interface MyMapViewController : UIViewController <MKMapViewDelegate>{

    MyAnnotation *annot;
}

MyMapViewController.m - где метод действительно существует, и он также определен в заголовочном файле.

 @implementation MyMapViewController

    @synthesize annot; 

    -(void) showSumDetails:(id)aSumData{
    NSLog(@"mapViewController-showSumDetails");
    SumDetailsViewController *wrController = [[SumDetailsViewController alloc] init];
    wrController.sumData = aSumData;
    [self.navigationController pushViewController:wrController animated:YES];//This needs to be pushed
    [wrController release];
}
@end

Но следующий метод в MyAnnotation.m не может найти метод выше: - (

@implementation MyAnnotation

@synthesize sumData;
@synthesize mapController;    

- (void) showPD{//is also defined in header file
        NSLog(@"sPD - MyAnn");

        [mapController showSumDetails:sumData]; //This doesn't have a clue about showSumDetails method- Why??
    }

Я был бы рад предоставить больше информации. Пожалуйста, помогите !!!

1 Ответ

1 голос
/ 18 февраля 2010

Вы импортировали MyMapViewController.h в MyAnnotation.m?

Поскольку вы используете прямую ссылку для MyMapViewController в MyAnnotation.h, вам необходимо импортировать MyMapViewController.h в MyAnnotation.m.

...