2010-12-06 7 views
1

私はCoreLocationでcurrentlocationを更新するマップビューを持っていますが、userLocationを使用するチェックもあります。userLocationVisbleがエラーを返します

私の問題を解決するにはまだ代替手段が見つかりません しかし何らかの理由で私はuserLocationVisibleを使って青い点を隠すことができません。

MapViewに入るとlocationManagerが起動しますが、場所を更新する前に青い点が表示され、ピンが表示されません。

私はカスタムMKAnnotationを使い、DidUpdateToLocationからnewLocationで座標を初期化しようとしました。私はこれを実行すると、私は得る:

-[CustomPlacemark setCoordinate:]: unrecognized selector sent to instance 0x1de6c0 

は、これが私のCustomPlacemarkです:私はUserLocationVisibleを使用できない理由

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

@interface CustomPlacemark : NSObject<MKAnnotation> { 
    CLLocationCoordinate2D coordinate; 
    NSString *title; 
    NSString *subtitle; 
} 
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate; 
@property (nonatomic, retain) NSString *title; 
@property (nonatomic, retain) NSString *subtitle; 

-(id)initWithCoordinate:(CLLocationCoordinate2D) coordinate; 
- (NSString *)subtitle; 
- (NSString *)title; 
@end 

#import "CustomPlacemark.h" 

@implementation CustomPlacemark 
@synthesize coordinate; 
@synthesize title, subtitle; 

-(id)initWithCoordinate:(CLLocationCoordinate2D) c{ 
    self=[super init]; 
    if (self!=nil) { 
     coordinate=c; 
    } 
    return self; 
} 

-(NSString*)title{ 
    return title; 
} 

-(NSString*)subtitle{ 
    return subtitle; 
} 

-(void) dealloc 
{ 
    [title release]; title = nil; 
    [subtitle release]; subtitle = nil; 
    [super dealloc]; 
} 
@end 

誰も教えてもらえます?

答えて

1

cordinateはcustomplacemarkクラスの読み取り専用プロパティです。だからあなたはcordinateプロパティを設定できません。 cordinateプロパティを設定すると、読み取りと書き込みを行います。あなたが設定したときに

チェンジ・ライン@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;

@property (nonatomic, readwrite) CLLocationCoordinate2D coordinate;

0

それはinitWithCoordinateになります行うのではなく

0

読み書きプロパティを作成するための正しい方法に青い点が表示されますshowsUserLocation = YES;青色の点を非表示にするには、これをNOに設定します。または、CoreLocationを使用してユーザーの場所が画面に表示されているかどうかを確認し、showsUserLocationをYESにすることもできます。

また、青い点はMKAnnotationプロトコルに準拠した特別な注釈クラスMKUserLocationです。独自のクラスであるアノテーションオブジェクトにメッセージを送信する場合は、MKUserLocationアノテーションオブジェクトを除外することができます。

MKUserLocationクラスに間違ったメッセージを送信せずにカスタムアノテーションオブジェクトを処理する方法を知りたい場合は、私が送信できるコードがあります。

関連する問題