我有两套使用
获得的套装NSMutableSet *monitoredRegionSet = [[locationManager monitoredRegions]mutableCopy];
,另一个是使用
获得的NSMutableSet *regionSet = [NSMutableSet setWithCapacity:regionChunks.count];
CLRegion *region = [[CLRegion alloc] initCircularRegionWithCenter:coordinate radius:radius
identifier:regionString];
[regionSet addObject:region];
当我尝试在它们之间设置操作时,它不起作用。我应该实现一个CLRegion类并实现isEqual:和hash:methods.Is有一个更好的方法来做到这一点。
[monitoredRegionSet intersectSet:regionSet];
[monitoredRegionSet minusSet:regionSet];
答案 0 :(得分:0)
CLRegion *region =
[[CLRegion alloc] initCircularRegionWithCenter:coordinate
radius:radius
identifier:regionString];
这是一个全新的,不同的区域对象。如果没有任何内置的区域相等概念,则可以保证包含此区域对象的集合与先前存在的区域对象集合之间存在 no 交集。
正如您所暗示的那样,您可以使用CLRegion isEqual:
和hash
。但那是你真正想要做的吗?一个更好的问题可能是:你究竟想在这里完成什么?例如,直接从第一组绘制第二组的区域可能更合适也更简单。
编辑:你最简单的方法可能是这样的:
https://stackoverflow.com/a/7197192/341994
停止监控所有区域并重新开始使用一组新区域(当然,其中一些区域可能与您已监控的区域相同)。