gpt4 book ai didi

ios - 如何从 NSSet 中删除所有对象

转载 作者:行者123 更新时间:2023-11-29 02:55:23 25 4
gpt4 key购买 nike

我这里有一个方法可以计算 map View 上的注释数量。然而,每次调用此方法时,annCount 都会不断增加。例如, map 上有 5 个注释 - 第一次调用此方法时,它会按预期返回 5。但第二次调用时,它返回 11,然后是 16、21、26,依此类推。

MKMapRect visibleMapRect = myMapView.visibleMapRect;
NSSet *visibleAnnotations = [myMapView annotationsInMapRect:visibleMapRect];
annCount = [visibleAnnotations count];


NSLog(@"%u", annCount);
return annCount;

我在想如果我可以清除 NSSet 中的所有对象,它就能正常工作。但是,NSSET 无法识别deleteAllObjects。我尝试过 NSMutableSet 但它不适用于“annotationsInMapRect:visibleMapRect”。干杯。

最佳答案

您的问题不在于返回的 NSSet。您的问题是 annotationsInMapRect: 返回的对象比您预期的多。这使我相信您向 map 添加了越来越多的注释(可能是错误的)。

NSSet 是一个不可变的集合,因此您不能在实例中添加或删除对象。此外,当 visibleAnnotations 被释放时,它会释放其中的所有对象。由于 annotationsInMapRect: 返回一个新对象,因此即使您能够调用 removeAllObjects 也没有关系。

关于ios - 如何从 NSSet 中删除所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23967247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com