Я вареные очень сложный набор веб-сервисов и поиска до простого следующего кода. Мне нужно, чтобы иметь возможность добавлять аннотации к карте в ответ на поиск (или в образце ниже, чтобы нажатие одной кнопки), затем позволяют пользователю нажать на кнопку еще раз и получить новый набор результатов. На самом деле там будет разное количество, но в упрощенном примере, мы всегда добавить одну аннотацию к MapView. Я считаю, что мой код должен удалить существующие аннотации и добавить новый, но утечка 32 байт на второй и последующие кнопки толчками. Что мне не хватает? (Или сохранение в зависимости от обстоятельств может быть!)
testViewController.h
#import <UIKit / UIKit.h>
#import <MapKit / MapKit.h>
#import MyMark.h
@interface testViewController: UIViewController {
MKMapView * MAPview;
}
@конец
testViewController.m
- (ID) initWithNibName: (NSString *) nibNameOrNil расслоение: (NSBundle *) nibBundleOrNil {
если (само = [супер initWithNibName: nibNameOrNil расслоение: nibBundleOrNil]) {
// инициализация пользовательского
self.title = @ тест;
}
Самовозврат;
}
- (недействительными) storeLocationInfo: (CLLocationCoordinate2D) Название LOC: (NSString *) т субтитров: (NSString *) -й индекс: (INT) я {
NSArray * аннотации = [MapView аннотации];
[MapView removeAnnotations: аннотации];
MyMark * mymark = [[MyMark Alloc] initWithCoordinate: LOC];
[MapView addAnnotation: mymark];
[MyMark релиз];
}
- (недействительными) viewDidLoad {
[Супер viewDidLoad];
UIBarButtonItem * barButton = [[UIBarButtonItem Alloc] initWithTitle: @ Добавить точку на карте стиль: цель UIBarButtonItemStylePlain: само действие: @selector (addPushed)];
[Self.navigationItem setRightBarButtonItem: barButton];
[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 = самостоятельно;
[Self.view insertSubview: MapView atIndex: 0];
[Выпуск MapView];
}
- (недействительными) addPushed {
MKCoordinateRegion р = mapView.region;
[Само storeLocationInfo: название reg.center: @ цена подзаголовок: @ название индекс: 1];
}
- (недействительными) dealloc {
[Супер dealloc];
}
MyMark.h
#import <Foundation / Foundation.h>
#import <MapKit / MapKit.h>
@interface MyMark: NSObject <MKAnnotation> {
CLLocationCoordinate2D координат;
NSString * название;
NSString * подзаголовок;
INT индекс;
}
@property (неатомическое, только для чтения) CLLocationCoordinate2D координат;
@property (неатомический, только для чтения) индекс INT;
@property (неатомическое, сохранить) NSString * название;
@property (неатомические, сохраняет) NSString * субтитры;
- (ID) initWithCoordinate: (CLLocationCoordinate2D) координат;
- (ID) setCoordinate: (CLLocationCoordinate2D) координат;
- (ID) SetTitle: (NSString *) т субтитров: (NSString *) -й индекс: (INT) я;
@конец
MyMark.m
#import MyMark.h
@implementation MyMark
@synthesize координат, индекс;
@synthesize названия, субтитры;
- (ID) initWithCoordinate: (CLLocationCoordinate2D) С {
координат = с;
NSLog (@ % F% F, c.latitude, c.longitude);
Самовозврат;
}
- (ID) setCoordinate: (CLLocationCoordinate2D) С {
координат = с;
NSLog (@ % F% F, c.latitude, c.longitude);
Самовозврат;
}
- (ID) SetTitle: (NSString *) т субтитров: (NSString *) -й индекс: (INT) я {
self.title = т;
self.subtitle = й;
Индекс = я;
Самовозврат;
}
- (недействительными) dealloc {
[Название релиз];
[Субтитры релиз];
[Супер dealloc];
}













