Eliminarea MKMapView Adnotările provoacă scurgeri

voturi
1

Am fiert un set foarte complex de servicii web și căutări în jos la simplu cod următor. Trebuie să fie în măsură să adăugați adnotări la o hartă ca răspuns la o căutare (sau în proba de mai jos la un clic pe un buton), apoi permite utilizatorului să faceți clic din nou butonul și a obține un nou set de rezultate. În realitate, va exista un număr diferit, dar în exemplul simplificat, vom adăuga întotdeauna o adnotare la mapview. Eu cred codul meu ar trebui să elimine adnotările existente și să adăugați unul nou, dar scurgeri de 32 de octeți pe împingeri a doua și următoarele butoane. Ce sunt eu lipsesc? (Sau reținerea după caz!)

testViewController.h

#import <UIKit / UIKit.h>
#import <MapKit / MapKit.h>
#import MyMark.h

@interface testViewController: UIViewController {
    MKMapView * mapView;
}

@Sfârşit

testViewController.m

- (id) initWithNibName: (NSString *) nibNameOrNil pachet: (NSBundle *) nibBundleOrNil {
    if (self = [Super initWithNibName: nibNameOrNil pachet: nibBundleOrNil]) {
        // inițializarea personalizată
        self.title = @ test;
    }
    întoarce de sine;
}

- (void) storeLocationInfo: (CLLocationCoordinate2D) Titlul loc: (NSString *) t subtitlu: index (NSString *) st: (int) i {
    NSArray * adnotări = [mapView adnotări];
    [RemoveAnnotations mapView: adnotări];

    MyMark * mymark = [[MyMark alloc] initWithCoordinate: loc];
    [MapView addAnnotation: mymark];
    [MyMark de presă];
}

- (void) {viewDidLoad
    [Super-viewDidLoad];
    UIBarButtonItem * barButton = [[UIBarButtonItem aloc] initWithTitle: @ Adăugați punct la harta stil: țintă UIBarButtonItemStylePlain: acțiune de sine: @selector (addPushed)];
    [Self.navigationItem setRightBarButtonItem: barButton];
    [BarButton de presă];

    mapView = [[MKMapView alloc] initWithFrame: CGRectMake (0.0,0.0, self.view.frame.size.width, self.view.frame.size.height)];
    mapView.showsUserLocation = FALSE;
    mapView.delegate = sine;
    [Self.view insertSubview: mapView atIndex: 0];
    [Eliberare mapView];
}

- (void) {addPushed
    MKCoordinateRegion reg = mapView.region;
    [Auto storeLocationInfo: titlu reg.center: @ preț subtitlu: @ titlu index: 1];
}

- (void) {dealloc
    [Super-dealloc];
}

MyMark.h

#import <Foundation / Foundation.h>
#import <MapKit / MapKit.h>


@interface MyMark: NSObject <MKAnnotation> {
    CLLocationCoordinate2D coordonate;
    NSString * titlu;
    NSString * subtitrare;
    int index;
}
@property (nonatomic, readonly) CLLocationCoordinate2D coordonate;
@property (, readonly nonatomic) int index;
@property (nonatomic, reține) NSString * titlu;
@property (reține nonatomic) NSString * subtitlu;
- (id) initWithCoordinate: (CLLocationCoordinate2D) coordonează;
- (id) setCoordinate: (CLLocationCoordinate2D) coordonează;
- (id) SetTitle: (NSString *) T subtitlu: indicele (NSString *) st: (int) i;

@Sfârşit

MyMark.m

#import MyMark.h


@implementation MyMark
@synthesize coordonate, indicele;
titlu @synthesize, subtitlu;

- (id) initWithCoordinate: (CLLocationCoordinate2D) c {
    coordonate = c;
    NSLog (@ % f,% f, c.latitude, c.longitude);
    întoarce de sine;
}

- (id) setCoordinate: (CLLocationCoordinate2D) c {
    coordonate = c;
    NSLog (@ % f,% f, c.latitude, c.longitude);
    întoarce de sine;
}

- (id) SetTitle: (NSString *) t subtitlu: index (NSString *) st: (int) i {
    self.title = t;
    self.subtitle = st;
    index = i;
    întoarce de sine;
}

- (void) {dealloc
    [Eliberare titlu];
    [Eliberare subtitlu];
    [Super-dealloc];
}
Întrebat 03/09/2009 la 11:26
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
4

Nu te eliberează mymarkîn storeLocationInfo:title:subtitle:index:. Se pare că problema este o eroare de tastare. Linia care citește

[MyMark release];

ar trebui să fie

[mymark release];

Notă diferența de caz. Prima linie trimite releasela clasa, nu instanța.

Publicat 29/09/2009 la 17:16
sursa de către utilizator

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