2013-05-12 1 views
0

내가 두 세트NSSet 나는 그것이 내가를 works.Should하지 않는 그들 사이에 작업을 설정하려고하면

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 : 메소드를 구현하십시오.이 작업을 수행하는 더 나은 방법이 있습니까? 완전히 새로운 다른 영역 목적

[monitoredRegionSet intersectSet:regionSet]; 
[monitoredRegionSet minusSet:regionSet]; 
+0

"그들 사이의 작업 설정"은 무엇입니까? – trojanfoe

+0

minusSet : 및 intersectSect : 시도했지만 그 중 아무도 작동하지 않습니다. – agupta

+0

작업과 함께 코드를 게시 할 수 있습니까? – danypata

답변

0
CLRegion *region = 
    [[CLRegion alloc] initCircularRegionWithCenter:coordinate 
     radius:radius   
    identifier:regionString]; 

. 지역 평등에 대한 기본 개념이 없으면 아니요이 지역 객체를 포함하는 집합과 이전에 존재하는 영역 객체 집합 사이에 교차한다는 보장을받습니다.

CLRegion isEqual:hash으로 게임을 할 수 있습니다. 그러나 당신이 정말로하고 싶은 그 무엇입니까? 더 좋은 질문은 다음과 같습니다. 실제로 여기서 무엇을 성취하려고합니까? 예를 들어 첫 번째 세트에서 직접 두 번째 세트의 영역을 그리는 것이 더 적절하고 간단 할 수 있습니다.

편집 : 귀하의 간단한 방법은 다음과 같이 수 있습니다 :

https://stackoverflow.com/a/7197192/341994

그냥 모든 지역을 모니터링을 중지하고 (지역의 새로운 세트로 시작 일부 물론, 수도, 그 중 이미 모니터링하고있는 지역과 동일하게 발생합니다).

+0

영역 정보를 구문 분석하고 그것을 사용하는 영역을 만드는 문자열로 얻습니다. 더 이상 유효하지 않은 영역에 대한 모니터링을 중지하고 새로운 영역에 대한 모니터링을 시작해야합니다. – agupta

+0

지역 정보가 주어지면 첫 번째 세트를 열거하고 해당 지역이 이미 있는지 확인하면됩니다. – matt

+0

아니면 내가 편집 한 모든 것을 모니터링하는 것을 중지하고 다시 시작합니다. 편집 된 답변에서 제안합니다. 일을 단순하게 유지하십시오. – matt