Jsem vaří velmi komplexní sadu webových služeb a hledání dolů na jednoduchém následující kód. Musím být schopni přidat poznámky do mapy v reakci na vyhledávání (nebo v níže uvedeném příkladu ke kliknutí na tlačítko), pak umožňují uživateli tlačítko znovu a získat novou sadu výsledků. Ve skutečnosti tam bude jiné číslo, ale ve zjednodušeném příkladu jsme vždy přidat jednu poznámku k MapView. Věřím, že můj kód by mělo odstranit stávající poznámky a přidat novou, ale nevrací 32 bajtů na druhém a dalších tlačítek tlačí. Co jsem chybí? (Nebo udržení případně může být!)
testViewController.h
#import <UIKit / UIKit.h>
#import <MapKit / MapKit.h>
#import MyMark.h
@interface testViewController: UIViewController {
MKMapView * MapView;
}
@konec
testViewController.m
- (id) initWithNibName: (NSString *) nibNameOrNil svazek: (NSBundle *) nibBundleOrNil {
pokud (self = [Super initWithNibName: nibNameOrNil svazek: nibBundleOrNil]) {
// Vlastní inicializace
self.title = @ test;
}
vrátit sebe;
}
- (void) storeLocationInfo: (CLLocationCoordinate2D) Název loc: (NSString *) t titulků: (NSString *) st index: (int) i {
NSArray * anotace = [MapView anotace];
[MapView removeAnnotations: poznámky];
MyMark * mymark = [[MyMark alloc] initWithCoordinate: loc];
[MapView addAnnotation: mymark];
[MyMark zpráva];
}
- (void) viewDidLoad {
[Super viewDidLoad];
UIBarButtonItem * barButton = [[UIBarButtonItem alloc] initWithTitle: @ Přidat místo na mapu styl: UIBarButtonItemStylePlain cíl: vlastní akce: @selector (addPushed)];
[Self.navigationItem setRightBarButtonItem: barButton];
[BarButton zpráva];
MapView = [[MKMapView alloc] initWithFrame: CGRectMake (0.0,0.0, self.view.frame.size.width, self.view.frame.size.height)];
mapView.showsUserLocation = FALSE;
mapView.delegate = samostatně;
[Self.view insertSubview: MapView atIndex: 0];
[MapView zpráva];
}
- (void) addPushed {
MKCoordinateRegion reg = mapView.region;
[Vlastní storeLocationInfo: Název reg.center: @ cena nadpis: @ název index: 1];
}
- (void) dealloc {
[Super dealloc];
}
MyMark.h
#import <Foundation / Foundation.h>
#import <MapKit / MapKit.h>
@interface MyMark: NSObject <MKAnnotation> {
CLLocationCoordinate2D souřadnic;
NSString * hlavy;
NSString * titulky;
int index;
}
@property (nonatomic, pouze pro čtení) CLLocationCoordinate2D souřadnic;
@property (nonatomic, pouze pro čtení) int index;
@property (nonatomic, ponechat) Název NSString *;
@property (nonatomic, ponechat) NSString * titulky;
- (id) initWithCoordinate: (CLLocationCoordinate2D) koordinuje;
- (id) setCoordinate: (CLLocationCoordinate2D) koordinuje;
- (id) setTitle: (NSString *) t titulků: (NSString *) st index: (int) i;
@konec
MyMark.m
#import MyMark.h
@implementation MyMark
@synthesize souřadnic, index;
@synthesize název nadpis;
- (id) initWithCoordinate: (CLLocationCoordinate2D) c {
koordinovat = c;
NSLog (@ % F,% f, c.latitude, c.longitude);
vrátit sebe;
}
- (id) setCoordinate: (CLLocationCoordinate2D) c {
koordinovat = c;
NSLog (@ % F,% f, c.latitude, c.longitude);
vrátit sebe;
}
- (id) setTitle: (NSString *) t titulků: (NSString *) st index: (int) i {
self.title = t;
self.subtitle = st;
index = i;
vrátit sebe;
}
- (void) dealloc {
[Uvolnění název];
[Uvolnění titulků];
[Super dealloc];
}













