2014-06-09 147 views
-2

在我的應用程序中使用ArcGIS。在那一個我想要搜索一個地方,並獲得有關該名稱的地方。現在我想解析這些地方的所有地址,並將它們放在表格視圖中。輸入地址後,按下搜索按鈕後,我將獲得地圖上的所有標記。現在,我試圖讓地方的完整地址,但我無法幹這事想要得到「place_addr」從下面的字符串值可以在任何一個請幫助我,我怎麼能在iOS該值從字符串獲取特定值

AGSFindLocationResult name=Disneyland, extent=AGSEnvelope: xmin = -13129988.221853, ymin =  4000701.846518, xmax = -13124422.247314, ymax = 4007401.106877, spatial reference: [AGSSpatialReference: wkid = 102100, wkt = null], graphic=geometry: AGSPoint: x = -13127204.667522, y = 4004050.640580, spatial reference: [AGSSpatialReference: wkid = 102100, wkt = null], symbol: { AGSPictureMarkerSymbol: imageName: BluePushpin.png, width: 36.000000, height: 36.000000 },  attributes: { 
AddBldg = ""; 
AddNum = ""; 
AddNumFrom = ""; 
AddNumTo = ""; 
"Addr_type" = POI; 
City = Anaheim; 
Country = USA; 
DisplayX = "-117.923687"; 
DisplayY = "33.815467"; 
Distance = 0; 
LangCode = ""; 
"Loc_name" = "Gaz.WorldGazetteer.POI2"; 
"Match_addr" = Disneyland; 
Nbrhd = ""; 
Phone = "(714)781-4565"; 
PlaceName = Disneyland; 
"Place_addr" = "1313 S Disneyland Dr Anaheim, CA 92802"; 
Postal = ""; 
PostalExt = ""; 
Rank = "2.5"; 
Region = California; 
Score = 100; 
Side = ""; 
StAddr = ""; 
StDir = ""; 
StName = ""; 
StPreDir = ""; 
StPreType = ""; 
StType = ""; 
Subregion = Orange; 
Type = "Amusement Park"; 
URL = ""; 
X = "-117.923687"; 
Xmax = "-117.898691"; 
Xmin = "-117.948691"; 
Y = "33.815467"; 
Ymax = "33.84047000000002"; 
Ymin = "33.79047"; 
}, visible: 1 
+0

你的迴應是數組格式。 取得字典中第一個數組的值,並使用鍵「place_addr」從字典中提取值 – kb920

+0

您是否將該內容作爲字符串取回?它不是JSON或XML格式?這很不尋常。 –

回答

0

如果你要找回真的是一個字符串,那麼你應該看看搜索字符串像rangeOfString方法。

這將返回一個包含您的標籤,「place_addr」的NSRange。

然後,你想從該點向前搜索分號,使用相關方法rangeOfString:選擇:在一個字符串的特定範圍搜索範圍:,。

最後,您需要計算內容的範圍,這將是「place_addr」的NSRange末尾5個字符,並且不超過最終分號。

然後你會使用substringWithRange提取誰的範圍內,你上面計算的字符串。

給一個嘗試,然後回來,如果你有麻煩了。

0

請嘗試以下

- (NSArray *)findKey:(NSString *)key inString:(NSString *)allString 
{ 
    NSMutableArray *result = [[NSMutableArray alloc] initWithCapacity:1]; 
    NSArray *splitArray = [allString componentsSeparatedByString:@";"]; 

    for (NSString *s in splitArray) { 
     NSArray * keyValueArry = [s componentsSeparatedByString:@"="]; 

     if([keyValueArry count] > 1) 
     { 
      NSString *_key = [keyValueArry objectAtIndex:0]; 
      NSString *_value = [keyValueArry objectAtIndex:1]; 
      if([_key isEqualToString:key]) 
      { 
       [result addObject:_value]; 
      } 
     } 
    } 
    return result; 
} 

的代碼,其中的關鍵是place_addr,並allString是你的樣品字符串。