Ios 目标C removeAllObjects NSMutableArray

Ios 目标C removeAllObjects NSMutableArray,ios,objective-c,xcode,arrays,nsmutablearray,Ios,Objective C,Xcode,Arrays,Nsmutablearray,我有一个可变数组: NSMutableArray *locations = [[NSMutableArray alloc] init]; 当我调用iAction时(如果用户一直按它,我想可能会调用1000次),它会在地图上放置PIN,存储在该数组中 创建阵列后,我调用了以下命令: [locations removeAllObjects] 但是,管脚仍然彼此重叠,这是否正确清除了阵列?-(void)removeAllAnnotations{ - (void)removeAllAnnotatio

我有一个可变数组:

NSMutableArray *locations = [[NSMutableArray alloc] init];
当我调用iAction时(如果用户一直按它,我想可能会调用1000次),它会在地图上放置PIN,存储在该数组中

创建阵列后,我调用了以下命令:

[locations removeAllObjects]
但是,管脚仍然彼此重叠,这是否正确清除了阵列?

-(void)removeAllAnnotations{
- (void)removeAllAnnotations {

    NSMutableArray *annotationsToRemove = [NSMutableArray arrayWithCapacity:[self.map.annotations count]];
    for (int i = 0; i < [self.map.annotations count]; i++) {

            [annotationsToRemove addObject:[self.map.annotations objectAtIndex:i]];
    }

    [self.map removeAnnotations:annotationsToRemove];
}
NSMutableArray*annotationsToRemove=[NSMutableArray阵列容量:[self.map.annotations count]]; 对于(int i=0;i<[self.map.annotations count];i++){ [annotationsToRemove addObject:[self.map.annotations objectAtIndex:i]]; } [self.map removeAnnotations:annotationsToRemove]; }
在“removeAllObjects”行下添加以下代码行


这不是因为阵列中的对象已清除。必须通过调用

[mapViewObjectName removeAnnotions:位置]

然后,您在位置数组中分配的所有注释都将被删除


谢谢

语法并不难,也不是语言中最容易混淆的部分。问题是您很可能没有从映射本身中删除pin。获取新对象后调用注释(pin)方法array@RichardJ.RossIII啊,我没想过!我将尝试查找代码以从mapview中删除itremove批注。请在此处添加代码。仅从阵列中删除是不够的。您还需要从地图中删除注释。不幸的是,这并不能回答问题。OP没有说明他是否在使用地图视图,或者他使用的是什么类型的地图视图,因此这没有回答问题。谢谢你的回答,并为这个非常模糊的问题道歉。我很感激每个人所花的时间和球的疼痛。我希望你能理解,现在对我来说很难,因为这几乎是我在目标C的第一周。不幸的是,这没有回答我提出的问题。OP没有说明他是否在使用地图视图,或者他使用的是什么类型的地图视图,所以这并没有回答问题。。读一读。。它有一行“它在地图上放置图钉”。。睁大眼睛……不幸的是,这并不能回答你提出的问题。OP没有指定他是否实际使用地图视图,或者他使用的是什么类型的地图视图,因此这并没有回答问题。
[mapView removeAnnotations:mapView.annotations];