0

我正在循环浏览一系列返回的推文以获取文本组件和坐标。我已经将代码设置如下,这会检索文本而不是坐标。我不确定我做错了什么。我检查了返回的路径,返回的字符串的一部分包含例如

"geo":{"coordinates":[51.479361,-0.215066],"type":"Point"},

所以肯定会返回一个坐标。这是我的代码...

for (NSDictionary *tweet in results) {
                 // Get the tweet
                 NSString *twittext = [tweet objectForKey:@"text"];

                 // Save the tweet to the twitterText array
                 [_twitterText addObject:twittext];


id jsonResult = [tweet valueForKeyPath:@"geo.coordinates"];
                 if ([NSNull null] != jsonResult) {
                     if (2 == [jsonResult count]) {
                         NSDecimalNumber* longitude = [jsonResult objectAtIndex:0];
                         NSDecimalNumber* latitude = [jsonResult objectAtIndex:1];
                         if (longitude && latitude) {

                             // here you have your coordinates do whatever you like
                             [twitterLocation addObject:[NSString stringWithFormat:@"%@,%@", latitude, longitude]];
                         }
                         else {
                             NSLog(@"Warning: bad coordinates: %@", jsonResult);
                         }
                     }
                     else {
                         NSLog(@"Warning: bad coordinates: %@", jsonResult);
                     }
                 }*/
             }
4

1 回答 1

2

首先check,如果获得的值是NSStringNSDecimalNumber

if([jsonResult objectAtIndex:0] && [jsonResult objectAtIndex:1])  
{
   if([[jsonResult objectAtIndex:0] isKindOfClass:[NSString class]])
    {  
       double longitude = [[jsonResult objectAtIndex:0] doubleValue];
       double latitude = [[jsonResult objectAtIndex:1] doubleValue];
    }
}
于 2013-01-18T11:31:35.247 回答