Jeg har kokt en veldig komplekst sett av web-tjenester og søker ned til den enkle følgende kode. Jeg trenger å kunne legge til kommentarer til et kart som svar på et søk (eller i prøven under for å klikke på en knapp), så tillater brukeren å klikke på knappen igjen og få et nytt sett med resultater. I realiteten vil det være et annet nummer, men i forenklet eksempel, vi alltid legge en merknad til mapview. Jeg tror min kode bør fjerne de eksisterende kommentarer og legge til en ny en, men det lekker 32 byte på andre og påfølgende knapp presser. Hva er det jeg mangler? (Eller beholder som tilfellet kan være!)
testViewController.h
#import <UIKit / UIKit.h>
#import <MapKit / MapKit.h>
#import MyMark.h
@interface testViewController: UIViewController {
MKMapView * mapView;
}
@slutt
testViewController.m
- (id) initWithNibName: (NSString *) nibNameOrNil bunt: (NSBundle *) {nibBundleOrNil
if (selv = [super initWithNibName: nibNameOrNil bunt: nibBundleOrNil]) {
// Custom initialisering
self.title = @ test;
}
tilbake selv;
}
- (void) storeLocationInfo: (CLLocationCoordinate2D) loc tittel: (NSString *) t undertittel: (NSString *) st Indeks: (mellomprodukt) I {
NSArray * anmerkninger = [mapView merknader];
[MapView removeAnnotations: kommentarer];
MyMark * mymark = [[MyMark lloc] initWithCoordinate: loc];
[MapView addAnnotation: mymark];
[MyMark frigivelse];
}
- (void) viewDidLoad {
[Super viewDidLoad];
UIBarButtonItem * barButton = [[UIBarButtonItem Alloc] initWithTitle: @ Legg poeng å kartlegge -stil: UIBarButtonItemStylePlain mål: selv handling: @selector (addPushed)];
[Self.navigationItem setRightBarButtonItem: barButton];
[BarButton frigivelse];
mapView = [[MKMapView lloc] initWithFrame: CGRectMake (0.0,0.0, self.view.frame.size.width, self.view.frame.size.height)];
mapView.showsUserLocation = FALSE;
mapView.delegate = selv;
[Self.view insertSubview: mapView atIndex: 0];
[MapView frigivelse];
}
- (void) addPushed {
MKCoordinateRegion reg = mapView.region;
[Selv storeLocationInfo: reg.center tittel: @ pris undertittel: @ title index: 1];
}
- (void) dealloc {
[Super dealloc];
}
MyMark.h
#import <Foundation / Foundation.h>
#import <MapKit / MapKit.h>
@interface MyMark: NSObject <MKAnnotation> {
CLLocationCoordinate2D koordinere;
NSString * tittel;
NSString * undertittel;
int index;
}
@property (nonatomic, skrivebeskyttet) CLLocationCoordinate2D koordinaten;
@property (nonatomic, skrivebeskyttet) int index;
@property (nonatomic, beholde) NSString * tittelen;
@property (nonatomic, beholde) NSString * undertittel;
- (id) initWithCoordinate: (CLLocationCoordinate2D) koordinatsystem;
- (id) setCoordinate: (CLLocationCoordinate2D) koordinatsystem;
- (id) setTitle: (NSString *) t undertittel: (NSString *) st Indeks: (int) i;
@slutt
MyMark.m
#import MyMark.h
@implementation MyMark
@synthesize koordinat, indeks;
@synthesize tittel, undertittel;
- (id) initWithCoordinate: (CLLocationCoordinate2D) c {
koordinere = c;
NSLog (@ % f,% f, c.latitude, c.longitude);
tilbake selv;
}
- (id) setCoordinate: (CLLocationCoordinate2D) c {
koordinere = c;
NSLog (@ % f,% f, c.latitude, c.longitude);
tilbake selv;
}
- (id) setTitle: (NSString *) t undertittel: (NSString *) st Indeks: (mellomprodukt) I {
self.title = t;
self.subtitle = st;
indeks = i;
tilbake selv;
}
- (void) dealloc {
[Tittel frigivelse];
[Undertittel frigivelse];
[Super dealloc];
}













