AddressAnnotation может не отвечать на initWithCoordinate - PullRequest
0 голосов
/ 05 ноября 2011

моя программа хорошо работает на IOS 4.0, однако при запуске на IOS 5.0 выдается следующее предупреждение:

"AddressAnnotation может не отвечать на initWithCoordinate."

как изменить ниже этой части:

"addAnnotation = [[AddressAnnotation alloc] initWithCoordinate: location];"

AddressAnnotaion.m
 - (id) initWithCoordinate: (CLLocationCoordinate2D) c {
   coordinate = c;
   NSLog (@"%f,%f",c.latitude,c.longitude);

   return self;
  }

MapViewController.m

- (void)viewDidLoad {
  [super viewDidLoad]; 

  .......

  MKCoordinateRegion region;
  MKCoordinateSpan span;

  span.latitudeDelta =0.005;
  span.longitudeDelta =0.005;

  CLLocationCoordinate2D location = mapView.userLocation.coordinate;

  location.latitude = [lat doubleValue];
  location.longitude = [lon doubleValue];

  region.span = span;
  region.center = location;

  if (addAnnotation !=nil) {
  [mapView removeAnnotation:addAnnotation];
  [addAnnotation release];
  addAnnotation = nil;
  }

  addAnnotation = [[AddressAnnotation alloc] initWithCoordinate:location];

  addAnnotation.title = companyTitle;

  [mapView addAnnotation:addAnnotation];
  [mapView selectAnnotation:addAnnotation animated:YES];

  [mapView setRegion:region animated:TRUE];
  [mapView regionThatFits:region];

  }

1 Ответ

2 голосов
/ 05 ноября 2011

Убедитесь, что метод initWithCoordinate: объявлен в файле AddressAnnotation.h:

@interface AddressAnnotation : NSObject<MKAnnotation>
{
    //ivars here...
}

//properties here...

- (id) initWithCoordinate: (CLLocationCoordinate2D) c;  //<-- add this

@end


Кроме того, более стандартный способ реализации метода init выглядит следующим образом:

- (id) initWithCoordinate: (CLLocationCoordinate2D) c {
    self = [super init];
    if (self) {
        coordinate = c;
        NSLog (@"%f,%f",c.latitude,c.longitude);
    }
    return self;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...