2011-06-27 22 views
15

MKAnnotation için basit bir örnek proje var mı? Bazı "id<Annotation>" istediği gibi "addAnnotation" adresinden ne geçeceğini bilmiyorum. Geliştirici sitesindeki örneklerin hepsi diziler veya ayrıştırıcılarla birlikte, sadece ilk olarak anlamanın çok basit bir örneğine ihtiyacım var. peşinMKBekinti, basit örnek

Teşekkür ..

DÜZENLEME:

Dersim Pin kurdu. Burada, cevap vermediğine göre

yazıyor.

Pin.m, ben farklı örneklere göre, böyle hayata:

#import "Pin.h" 

@implementation Pin 

@synthesize title, subTitle; 

- (CLLocationCoordinate2D) coordinate { 
CLLocationCoordinate2D coords; 
coords.latitude = coordinate.latitude; //i want it that way 
coords.longitude = 7.1352260; //this way it works 

return coords; 

- (NSString *) title { 
return @"Thats the title"; 
} 

- (NSString *) subtitle { 
return @"Thats the sub"; 
} 

- (id)initWithCoordinates:(CLLocationCoordinate2D)location placeName:(NSString *)placeName description:(NSString *)description { 

return self; 
} 

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

@end 

ben elle koordinatlarını belirlemek, yani açıklamada belirttiği gibi, işe yarıyor. Ancak, değeri ilk yorumda olduğu gibi dinamik olarak ayarlayabilmek istiyorum. Çeşitli yollar denedim ama hiçbiri işe yaramadı. - (CLLocationCoordinate2D) coordinate belirtmediğiniz için, sadece coordinate'u sentezlemeye çalıştım, ancak bunun gibi işe yaramıyor.

MapPin.m?

DÜZENLEME 2:

Ben bunda yanlış

- (void)viewWillAppear:(BOOL)animated { 
self.locationManager = [[CLLocationManager alloc] init]; 
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
self.locationManager.delegate = self; 
[self.locationManager startUpdatingLocation]; 

CLLocation *curPos = locationManager.location; 
location = curPos.coordinate; 

CLLocationCoordinate2D mapCenter; 
mapCenter.latitude = location.latitude; 
mapCenter.longitude = location.longitude; 

MKCoordinateSpan mapSpan; 
mapSpan.latitudeDelta = 0.005; 
mapSpan.longitudeDelta = 0.005; 

MKCoordinateRegion mapRegion; 
mapRegion.center = mapCenter; 
mapRegion.span = mapSpan; 

mapKitView.region = mapRegion; 
mapKitView.mapType = MKMapTypeStandard; 
mapKitView.showsUserLocation=TRUE; 
} 

şey gibi mapCenter kurdu?

cevap

34

MKAnnotation protokolünü uygulayan bir sınıfa sahip olmanız gerekir.

@interface MapPin : NSObject<MKAnnotation> { 
    CLLocationCoordinate2D coordinate; 
    NSString *title; 
    NSString *subtitle; 
} 

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate; 
@property (nonatomic, readonly) NSString *title; 
@property (nonatomic, readonly) NSString *subtitle; 

- (id)initWithCoordinates:(CLLocationCoordinate2D)location placeName:(NSString *)placeName description:(NSString *)description; 

@end 

Eğer harita oluşturmak nerede arayacağım Sonra:

pin = [[MapPin alloc] initWithCoordinates:[track startCoordinates] placeName:@"Start" description:@""]; 
[map addAnnotation:pin]; 

DÜZENLEME: İşte

uygulamasıdır:

İşte benim projelerin birinden snippet'idir
@implementation MapPin 

@synthesize coordinate; 
@synthesize title; 
@synthesize subtitle; 

- (id)initWithCoordinates:(CLLocationCoordinate2D)location placeName:placeName description:description { 
    self = [super init]; 
    if (self != nil) { 
     coordinate = location; 
     title = placeName; 
     [title retain]; 
     subtitle = description; 
     [subtitle retain]; 
    } 
    return self; 
} 

- (void)dealloc { 
    [title release]; 
    [subtitle release]; 
    [super dealloc]; 
} 


@end 

Bu yardımcı olur umarım, Onno.

+0

Teşekkürler, bu zaten çok yardımcı oldu. Bunun için google'a ne yeniyim ve koşturdum, ama tam anlamıyorum. Şimdiye kadar sahip olduğum kod için güncellenmiş soruma bakın. Ne gibi bir şey olduğunu bilmiyorum .. – Nareille

+0

Düzenlenmiş cevabımı görün. – onnoweb

+0

Teşekkürler, bu yine yardımcı oldu :) Bazı garip davranışlar için son bir soru: .h, "koordinat" gibi bir şey tanımlamıyorum, ama Xcode bana bunu sentezlemem gerektiğini söylüyor. Eğer bunu yaparsam, mapCenter'ım yüzlerce metre batıya kaydırılır. Eğer sentezden çıkarsam tekrar uygun olur. Uyarıdan nasıl kurtuluruz? – Nareille