Fjerne MKMapView merknader forårsaker lekkasjer

stemmer
1

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];
}
Publisert på 03/09/2009 klokken 10:26
kilden bruker
På andre språk...                            


1 svar

stemmer
4

Du er ikke slippe mymarkinn storeLocationInfo:title:subtitle:index:. Det ser ut som problemet er en skrivefeil. Linjen som leser

[MyMark release];

bør være

[mymark release];

Merk saken forskjell. Den første linje sender releasetil den klasse, ikke forekomsten.

Svarte 29/09/2009 kl. 16:16
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more