循环创建对象多个,代理给对象赋值 怎么一一对应

/**
*根据指定坐标点生成一段折线
*@param coords 指定的经纬度坐标点数组
*@param count 坐标点的个数
*@return 新生成的折线对象
*/

  • (BMKPolyline )polylineWithCoordinates:(CLLocationCoordinate2D )coords count:(NSUInteger)count;

for (NSInteger index = 0; index < array.count; index++) {

           // 生成折线
            BMKPolyline* polyline = [BMKPolyline polylineWithCoordinates:coors count:2];
            [_mapView addOverlay:polyline];

}

/**
*根据overlay生成对应的View
*@param mapView 地图View
*@param overlay 指定的overlay
*@return 生成的覆盖物View
*/
(BMKOverlayView )mapView:(BMKMapView )mapView viewForOverlay:(id <BMKOverlay>)overlay;

// 代理方法。

  • (BMKOverlayView)mapView:(BMKMapView )map viewForOverlay:(id<BMKOverlay>)overlay
    {
    if ([overlay isKindOfClass:[BMKPolyline class]]) {

       // 创建我自己想要的折线view
           MaintenanceBMKPolylineView* polylineView = [[MaintenanceBMKPolylineView alloc] initWithOverlay:overlay];
           polylineView.fillColor = [[UIColor cyanColor] colorWithAlphaComponent:1];
           polylineView.strokeColor = [[UIColor blueColor] colorWithAlphaComponent:0.7];
           polylineView.lineWidth = 5.0;
           // 我需要的就是这个Array 对应 到数据
          polylineView.infoArray = [[NSMutableArray alloc] initWithObjects:_maintenancePolylineViewArray[_maintenancePolylineViewIndex-1], nil];
           return polylineView;
       }

    }

@interface MaintenanceBMKPolylineView : BMKPolylineView
{
}
@property (nonatomic , strong) NSMutableArray *infoArray; // 存储线段的的信息
@end

@implementation MaintenanceBMKPolylineView
@end

问题:
array.count 假如 = 10;

for (NSInteger index = 0; index < array.count; index++) {

// 用数组记录下折线的数据
[_maintenancePolylineViewInfoArray addObject:dic];
           // 生成折线
            BMKPolyline* polyline = [BMKPolyline polylineWithCoordinates:coors count:2];
            [_mapView addOverlay:polyline];

}

现在循环调用10次创建 折线。
若现在创建的第0条折线因经纬度原因在手机屏幕外。那么用户在移动屏幕后,才会调用
(BMKOverlayView )mapView:(BMKMapView )mapView viewForOverlay:(id <BMKOverlay>)overlay;方法去生成对应的polylineView。画出那个线段。

在循环中我用_maintenancePolylineViewInfoArray记录了10条折线他们各自对应的内容。
_maintenancePolylineViewInfoArray{A,B,C,D,E…};

请问,我怎么能做到让_maintenancePolylineViewInfoArray中的数值对应我创建出来的每一条折线呢?让_maintenancePolylineViewInfoArray的每个元素对应到代理方法中MaintenanceBMKPolylineView的infoArray。

阅读 3.3k
1 个回答
新手上路,请多包涵

请问你的 coors 是怎么创建的,coors的个数不确定的话,又该如何创建呢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题