如何在 NSMutableDictionary 中添加对象

How to add objects in a NSMutableDictionary

我有一个使用 MKMapView 的应用程序。在我的应用程序中,我声明了一个数组来保存来自 API 的响应。来自 API 的数据是要固定在地图中的作业(集群注释)。保存来自 API will/needs 的职位的数组,这些职位将被地图中可见的职位图钉过滤。我能够过滤坐标(在地图上可见或不可见),但我在将数据(可见的坐标)存储在新数组中时遇到了麻烦。

这是我目前的情况: 在我的地图视图中的 regionDidChangeAnimated

        [ar objectAtIndex:0];
        NSMutableDictionary *visibleJobs;

        for(NSDictionary *loc in ar)
        {
            CLLocationDegrees Lat = [[[loc objectForKey:@"sub_slots"] objectForKey:@"latitude"] doubleValue];
            CLLocationDegrees longTitude = [[[loc objectForKey:@"sub_slots"] objectForKey:@"longitude"] doubleValue];
            CLLocationCoordinate2D point = CLLocationCoordinate2DMake(Lat, longTitude);

            MKMapPoint mkPoint = MKMapPointForCoordinate(point);

            BOOL contains = MKMapRectContainsPoint(mapView.visibleMapRect, mkPoint);
            if(contains)
            {
                NSLog(@"Contains:1");
            }
            else
            {
                NSLog(@"Contains:0");
            }
        }

非常感谢任何帮助。 谢谢!

你为什么不使用 NSMutableArray

试试这个

NSMutableArray *visibleJobs = [[NSMutableArray alloc]init];

    for(NSDictionary *loc in ar)
    {
        CLLocationDegrees Lat = [[[loc objectForKey:@"sub_slots"] objectForKey:@"latitude"] doubleValue];
        CLLocationDegrees longTitude = [[[loc objectForKey:@"sub_slots"] objectForKey:@"longitude"] doubleValue];
        CLLocationCoordinate2D point = CLLocationCoordinate2DMake(Lat, longTitude);

        MKMapPoint mkPoint = MKMapPointForCoordinate(point);

        BOOL contains = MKMapRectContainsPoint(mapView.visibleMapRect, mkPoint);
        if(contains)
        {
            NSLog(@"Contains:1");
            [visibleJobs addObject:loc];
        }
        else
        {
            NSLog(@"Contains:0");
        }
    }

现在可见的工作数组包含当前在地图上可见的所有图钉数据的字典