Ho bollito un insieme molto complesso di servizi web e ricerche fino al semplice codice seguente. Ho bisogno di essere in grado di aggiungere annotazioni a una mappa in risposta a una ricerca (o nel campione di seguito per il clic di un pulsante), quindi consentire all'utente di selezionare nuovamente il pulsante e ottenere un nuovo set di risultati. In realtà ci sarà un numero diverso, ma nel esempio semplificato, abbiamo sempre aggiungere un'annotazione al mapview. Credo che il mio codice dovrebbe rimuovere le annotazioni esistenti e aggiungerne uno nuovo, ma le perdite di 32 byte su seconda e successive spinte dei pulsanti. Che cosa mi manca? (O mantenere a seconda dei casi può essere!)
testViewController.h
#import <UIKit / UIKit.h>
#import <MapKit / MapKit.h>
#import MyMark.h
@interface testViewController: UIViewController {
MKMapView * MapView;
}
@fine
testViewController.m
- (id) initWithnibName: (NSString *) nibNameOrNil bundle: (NSBundle *) nibBundleOrNil {
if (auto = [super initWithnibName: nibNameOrNil bundle: nibBundleOrNil]) {
// inizializzazione personalizzato
self.title = @ test;
}
ritornare sé;
}
- (void) storeLocationInfo: (CLLocationCoordinate2D) titolo loc: (NSString *) t sottotitolo: index (NSString *) st: (int) i {
NSArray * annotazioni = [MapView annotazioni];
[RemoveAnnotations MapView: annotazioni];
MyMark * mymark = [[MyMark alloc] initWithCoordinate: loc];
[MapView AddAnnotation: mymark];
[Rilascio MyMark];
}
- (void) {viewDidLoad
[Super viewDidLoad];
UIBarButtonItem * barButton = [[UIBarButtonItem alloc] initWithTitle: @ Aggiungi punto per mappare stile: obiettivo UIBarButtonItemStylePlain: azione di auto: @selector (addPushed)];
[Self.navigationItem setRightBarButtonItem: barButton];
[Rilascio barButton];
mapview = [[MKMapView alloc] initWithFrame: CGRectMake (0.0,0.0, self.view.frame.size.width, self.view.frame.size.height)];
mapView.showsUserLocation = FALSE;
mapView.delegate = auto;
[Self.view insertSubview: MapView atIndex: 0];
[Rilascio MapView];
}
- (void) {addPushed
MKCoordinateRegion reg = mapView.region;
[Auto storeLocationInfo: titolo reg.center: @ prezzo sottotitolo: @ titolo Indice: 1];
}
- (void) {dealloc
[Super dealloc];
}
MyMark.h
#import <Foundation / Foundation.h>
#import <MapKit / MapKit.h>
@interface MyMark: NSObject <MKAnnotation> {
CLLocationCoordinate2D coordinate;
NSString * titolo;
NSString * sottotitolo;
int index;
}
@property (nonatomic, di sola lettura) CLLocationCoordinate2D coordinate;
@property (nonatomic, di sola lettura) int index;
@property (nonatomic, mantenere) NSString * titolo;
@property (nonatomic, mantenere) NSString * sottotitoli;
- (id) initWithCoordinate: (CLLocationCoordinate2D) coordina;
- (id) setCoordinate: (CLLocationCoordinate2D) coordina;
- (id) setTitle: (NSString *) t sottotitolo: index (NSString *) st: (int) i;
@fine
MyMark.m
#import MyMark.h
@implementation MyMark
@synthesize coordinate, indice;
titolo @synthesize, sottotitolo;
- (id) initWithCoordinate: (CLLocationCoordinate2D) c {
coordinare = c;
NSLog (@ % f,% f, c.latitude, c.longitude);
ritornare sé;
}
- (id) setCoordinate: (CLLocationCoordinate2D) c {
coordinare = c;
NSLog (@ % f,% f, c.latitude, c.longitude);
ritornare sé;
}
- (id) setTitle: (NSString *) t sottotitolo: index (NSString *) st: (int) i {
self.title = t;
self.subtitle = st;
index = i;
ritornare sé;
}
- (void) {dealloc
[Rilascio titolo];
[Rilascio sottotitolo];
[Super dealloc];
}













