2014-06-09 114 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是你的样品字符串。