尝试从数组中的值中删除基于 MKMap 的引脚

Posted

技术标签:

【中文标题】尝试从数组中的值中删除基于 MKMap 的引脚【英文标题】:Attempting to drop pins based on MKMap from values from array 【发布时间】:2014-09-07 16:48:36 【问题描述】:

正如问题所说,我正在尝试根据我的 php 文件返回的坐标向我的地图添加图钉。所述文件返回以下结果 ["dogid":"1","latitude":"15.435786","longitude":"-21.318447","dogid":"1","latitude":"14.00000","longitude":" -18.536711"]

我正在做的(我相信我是)从链接中获取值并将它们保存到字符串中。其次,将该字符串值保存到数组中。然后,我遍历这个数组并保存纬度和经度并将其分配给 CLLocationCordinate 2dcoord。之后,我希望两个别针都可以放在他们收到的任何位置。

然而,发生的事情是:在运行程序时,当它到达这条线路时

for (NSDictionary *row in locations) 

没有运行循环来分配值,而是跳到最后。奇怪的是,地图上掉了一个大头针(您的位置似乎不是它传递的值)。

不胜感激。

谢谢

- (void)viewDidAppear:(BOOL)animated



    NSMutableArray *annotations = [[NSMutableArray alloc] init];
    NSURL *myURL =[NSURL URLWithString:@"link.php"];
    NSError *error=nil;
    NSString *str=[NSString stringWithContentsOfURL:myURL encoding:NSUTF8StringEncoding error:&error];

    CLLocationCoordinate2D coord;

    NSArray *locations=[NSArray arrayWithContentsOfFile:str];
    for (NSDictionary *row in locations) 
        NSNumber *latitude = [row objectForKey:@"latitude"];
        NSNumber *longitude = [row objectForKey:@"longitude"];
        // NSString *title = [row objectForKey:@"title"];
        //Create coordinates from the latitude and longitude values
        coord.latitude = latitude.doubleValue;
        coord.longitude = longitude.doubleValue;
    

    MKPointAnnotation *pin = [[MKPointAnnotation alloc] init];
    pin.coordinate = coord;
    [self.mapView addAnnotation:pin];

【问题讨论】:

这与 MapKit 无关。 arrayWithContentsOfFile 方法不会将包含 JSON 的字符串转换为数组(它假定您传递给它的字符串包含 文件路径(包含带有数组的 plist)。因为您的字符串不是有效的文件路径,数组为空。 相反,您想使用NSJSONSerialization。见***.com/questions/8356842/…、***.com/questions/20399087/…等。 @Anna 谢谢,解决了 【参考方案1】:

您似乎正在尝试将 api 响应保存到数组。

Api 总是返回 NSString 的 json 字符串。

您需要转换解码 json 字符串。

你的情况

NSString *str=[NSString stringWithContentsOfURL:myURL encoding:NSUTF8StringEncoding error:&error];

你需要用 [NSJSONSerialization JSONObjectWithData:)#> options: error:)#>] 解码 str正确的字典数组。

希望对你有帮助

【讨论】:

以上是关于尝试从数组中的值中删除基于 MKMap 的引脚的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Python 数组中删除多余的空格? [复制]

从数组值中过滤字典

如何从数值数组值中删除引号

如何从数组内的值中修剪数据?

使用猫鼬模式将多个选择元素值中的值存储到MongoDB中的数组中

如何在 PHP 中搜索数组中的多个值?