2011-10-06 159 views
0

我有以下的plist:經度緯度CLLocation

<plist version="1.0"> 
<array> 
    <dict> 
     <key>description</key> 
     <string>Dodge Viper</string> 
     <key>title</key> 
     <string>Bil</string> 
     <key>longitude</key> 
     <real>19.027054</real> 
     <key>latitude</key> 
     <real>36.129471</real> 
     <key>show</key> 
     <true/> 
    </dict> 
    <dict> 
     <key>description</key> 
     <string>Dodge RAM</string> 
     <key>title</key> 
     <string>Truck</string> 
     <key>longitude</key> 
     <real>1.026062</real> 
     <key>latitude</key> 
     <real>46.128918</real> 
     <key>show</key> 
     <true/> 
    </dict> 
    <dict> 
     <key>description</key> 
     <string>Tøf tøf</string> 
     <key>title</key> 
     <string>Lastbil</string> 
     <key>longitude</key> 
     <integer>0</integer> 
     <key>latitude</key> 
     <real>56.128918</real> 
     <key>show</key> 
     <true/> 
    </dict> 
    <dict> 
     <key>description</key> 
     <string>Black Pearl</string> 
     <key>title</key> 
     <string>Piratskib</string> 
     <key>longitude</key> 
     <integer>0</integer> 
     <key>latitude</key> 
     <real>25.128918</real> 
     <key>show</key> 
     <false/> 
    </dict> 
</array> 
</plist> 

而且我有一個基本的MapView的控制器。

我想要的是使用經度和高度鍵爲每個項目創建註釋。

問題是,當我嘗試我遇到問題與「雙」 - >我不知道如何從plist讀取我的價值作爲雙重,我試過轉換它,但它似乎並沒有工作。

我在地圖視圖控制器代碼是這樣的:

目前有一個在一個問題「雙latitude2 = [STR objectForKey:@」緯度「];」但無論如何我都包括這條線來表達我的意圖。

-(void)viewDidLoad { 
    [super viewDidLoad]; 



    NSString *path = [[NSBundle mainBundle] pathForResource: 
         @"enheder" ofType:@"plist"]; 

    NSMutableArray *array2 = [[NSMutableArray alloc] initWithContentsOfFile:path]; 

    for (NSString *str in array2) { 

     double latitude2 = [str objectForKey:@"latitude"]; 


    [mapview setMapType:MKMapTypeHybrid]; 
    [mapview setZoomEnabled:YES]; 
    [mapview setScrollEnabled:YES]; 

    MKCoordinateRegion region = { {0.0, 0.0 }, {0.0, 0.0 } }; 
    region.center.latitude = latitude2; 
    region.center.longitude = 9.027044; 
    region.span.longitudeDelta = 0.001f; 
    region.span.latitudeDelta = 0.001f; 
    [mapview setRegion:region animated:YES]; 

    NewClass *ann = [[NewClass alloc] init]; 
    ann.title = @"Title"; 
    ann.subtitle = @"Sub"; 
    ann.coordinate = region.center; 
    [mapview addAnnotation:ann]; 

    } 




} 

對於iPhone的編程,我非常喜歡新手,所以很可能我錯過了一些基本的東西。但任何幫助將不勝感激。

回答

3

你的plist漢字典的數組不是字符串數組。以這種方式更改您的代碼

for (NSDictionary *dict in array2) 
    double latitude2 = [[dict objectForKey:@"latitude"] doubleValue]; 
0
for (NSString *str in array2) { 
在此聲明的NSString與NSDictionary的替代

我認爲它會工作

+0

是的,plist是一個字典數組,而不是一串字符串。 –