В основном я знаю, где будет обычно проблема (другой метод, чем я объявил), но взгляните на это. Конечно, я могу что-то упустить, но я пытался решить эту проблему в течение часа. Я тоже чист.Нет видимого @interface для селектора
Error: DetailGymViewController.m:46:62: No visible @interface for 'CustomAnnotation' declares the selector 'initWithCoordinate:title:subtitle:'
код с ошибкой:
#import "DetailGymViewController.h"
#import "CustomAnnotation.h"
@interface DetailGymViewController()
@end
@implementation DetailGymViewController {
CLLocationManager *locationManager;
}
- (void)viewDidLoad
{
[super viewDidLoad];
locationManager = [[CLLocationManager alloc] init];
self.mapView.delegate = self;
self.nameLabel.text = self.name;
self.longitudeLabel.text = [NSString stringWithFormat:(@"%f"), self.longitude];
self.latitudeLabel.text = [NSString stringWithFormat:(@"%f"), self.latitude];
}
#pragma mark - Map/Locations delegates
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
NSLog(@"Failed to get location with error: %@", error);
}
- (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView
{
CLLocationCoordinate2D coordinate;
coordinate.latitude = self.latitude;
coordinate.longitude = self.longitude;
// ERROR HERE
CustomAnnotation *annotation = [[CustomAnnotation alloc] initWithCoordinate:coordinate title:self.name subtitle:@"Info"];
[self.mapView addAnnotation:(id)annotation];
}
декларация CustomAnnotation.h:
#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>
@interface CustomAnnotation : NSObject
@property (strong, nonatomic) NSString *title;
@property (strong, nonatomic) NSString *subtitle;
@property (nonatomic,assign) CLLocationCoordinate2D coordinate;
- (id)initWithCoordinate:(CLLocationCoordinate2D)coordinate title:(NSString *)title subtitle:(NSString *)subtitle;
@end
также, мой файл CustomAnnotation.m:
#import "CustomAnnotation.h"
@implementation CustomAnnotation
-(id) initWithCoordinate:(CLLocationCoordinate2D)coordinate title:(NSString *)title subtitle:(NSString *)subtitle {
if ((self = [super init])) {
self.coordinate = coordinate;
self.title = title;
self.subtitle = subtitle;
}
return self;
}
@end
Вы можете проверить, не упустили ли вы добавление CustomAnnotation к целевой программе? – ldindu
@ldindu где я могу это найти? Странно то, что я использую упомянутый метод init в другом файле, и я не получаю никакой ошибки. – Xoroxoxoxoxoso
Где ваш метод initWithCoordinate? – andrewbuilder