2012-03-26 9 views
0

NSDictionaryを使い慣れていますが、私が間違っていることを指摘する必要があります。NSDictionaryをinitWithObjectAndKeysに変換する

私はNSDictionaryのを持っている座標の浮動小数点値をストア:

ヘッダー:

@class DetailViewController; 
@interface MasterViewController : UITableViewController 
@property (strong, nonatomic) DetailViewController *detailViewController; 
@property (strong, nonatomic) NSArray *DestinationData; 
@property (strong, nonatomic) NSArray *DestinationSections; 

- (void)createDestinations; 

メイン:

@implementation MasterViewController 

@synthesize detailViewController = _detailViewController; 
@synthesize DestinationData; 
@synthesize DestinationSections; 

NSMutableArray *museumArray; 

self.DestinationSections=[[NSArray alloc]initWithObjects: 
          ... 
          ... 
          (@"Museums"), nil]; 

[museumsArray addObject:[[NSDictionary alloc] 
        initWithObjectsAndKeys:@"Museum",@"Name", 
        @"51.5189100",@"Dest Lat", 
        @"-0.1263840",@"Dest Long", 
        nil]]; 

self.DestinationData=[[NSArray alloc] initWithObjects: 
museumsArray, nil]; 

私は辞書から値を返すことができるようにしたいですCLLocationCoordinate2Dで使用します。

詳細ビューコントロール。 m:

CLLocationCoordinate2D destinationLocation; 

この値を2倍にするにはどうすれば設定できますか?

destinationLocation.latitude = [[self.detailItem objectForKey:@"Dest Lat"] doubleValue]; 
destinationLocation.longitude = [[self.detailItem objectForKey:@"Dest Long"] doubleValue]; 

MapViewAnnotation *destAnnotation = [[MapViewAnnotation alloc] initWithTitle:@"British Museum" andCoordinate:destinationLocation]; 
[self.detailGoogleMap addAnnotation:destAnnotation]; 
+0

どのようなエラーが表示されていますか? –

+0

?あなたの質問は何ですか?? – yuji

+0

地図の注釈をプロットするために座標を渡すと、注釈を正しい位置にプロットしません。 – Jeremy

答えて

1

あなたがCLLocation2Dを格納する方法がわからないので、あなたが唯一の文字列として座標を格納している場合は、よりよい解決策があります:場所をラップするNSValueを使用するには。

NSValue *locationValue = [NSValue valueWithBytes:&destinationLocation 
             objCType:@encode(CLLocationCoordinate2D)]; 

locationValue今、あなたは辞書や配列などの容器に保存することができ正真正銘のObjective-Cのオブジェクトです。後で、位置座標を取得する場合は、次のようにします。

CLLocationCoordinates2D destination; 
NSValue *locationValue = [myDictionary objectForKey:@"destination"]; 
[location getValue:&destination]; 
+0

値が設定される前に別のクラスを参照する問題があるようです。カレブ - それに感謝します。私はそれを試してみましょう。 – Jeremy

関連する問題