2012-11-18 3 views
0

에서 특정 범위 가져 오기 그래서 이것은 쉽지 않을 것 같아요. 여기에 간다 : 나는 두 개의 NSArrays를 가지고 있는데, 각각은 몇 가지 사용자 지정 개체 (KVC 호환 .. 아마도 도움이 될 것입니다)를 포함하고 있습니다. 객체는 첫 번째 배열에 두 개의 속성을 갖습니다 (배열 1이라고 함).이 객체는 NSNumbers이고, 두 번째 배열에는 한 객체가 NSNumber이고 다른 객체는 NSDate입니다. 다음은 두 부분으로 된 질문입니다.) 특정 범위의 NSNumbers 중 하나를 가진 모든 객체와 함께 배열 1에서 NSArray를 얻는 방법NSArray

배열이 [(1,1), (2,4), (2,12), (3,14)] 그리고 3과 13 사이의 두 번째 값 (이 경우 객체 2와 3 만)이있는 배열이 필요합니다. 예 배열은 두 번째 변수에 정렬됩니다 ...

2) 두 번째 배열에는 간격이있는 개체가 필요하지만이 간격을 하위 분할해야합니다. 작은 간격 및 반환 된 배열의 첫 번째 간격에서 숫자 개체의 합계를 가진이 새 개체를 갖게됩니다 .... 예를 들어 나는 명확하지 않은 경우를 대비하여 ....

초기 배열 (1 월 12 일), (5 월 1 일), (20 일, 3 월 15 일), (10 월 3 월 20 일), (26 일, 4 월 28 일), (20 일, 6 월) ]; 그리고 나는 2 월 1 일 - 5 월 30 일 간격을 필요로하고 결과는 [(0, 2 월), (30, 3 월 26 일, 10 월 3 일부터 10 일까지), (26 일, 4 월), ,할 수있다)];

이 초기 날짜 - 숫자 배열은 바뀌지 않을 것입니다 ... 그리고 하위 구간 분할 시간 프레임은 항상 다음과 같이됩니다 : 간격의 시작부터 마지막 ​​간격의 끝까지 ... (첫날 (자정)부터) 1 월 1 일 ~ 3 : 59 : 59.999 PM)

이러한 배열에는 최대 10,000 개의 개체가있을 수 있으므로 솔루션이 효율적일 경우 훌륭합니다. ... 그리고이 getRangeWithInterval 함수는 1 초에 한 번 이상 호출 될 수 있습니다 (iPhone 3GS에서 실행되어야합니다 ... 나는 너무 많이 요구하지 않기를 바랍니다). :)

+0

날짜 및 숫자 배열에 대한 추가 정보가 있습니까? 예 : 각 반복에서 사용되는 배열과 동일한 배열입니까? 그것을 조작하고 각 객체에 추가 속성을 추가 할 수 있습니까? 등 –

+0

동일하지만 변경되지는 않지만 서로 다른 분할 간격 (월, 일, 년)의 다른 하위 배열이 필요할 것입니다 – user1028028

+0

아 ... 네 ... 각 속성에 새 속성을 추가 할 수 있습니다. 필요한 경우 객체 ... – user1028028

답변

1

첫 번째 문제는 NSPredicate를 사용하여 해결할 수 있습니다. 객체에서 두 번째의 NSNumber 속성이 secondNumber를 호출하면
는의가 있다고 가정 해 봅시다 :

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"secondNumber >= 3 && secondNumber <= 13"]; 
NSArray *filteredArray = [array1 filteredArrayUsingPredicate:predicate]; 

가 컴파일 희망 - 나는 엑스 코드없이 썼다.

두 번째 문제는 약간 더 어려워 보입니다.
그것에 대해 생각해 봅시다 ...

+0

... – user1028028

+0

두 번째 문제는 가능한 경우 구현을 다시 설계하는 것이 좋습니다. 예를 들어, 달에 대한 하나의 속성과 NSMutableArray 종류에 대한 또 다른 속성을 갖는 다른 객체를 만듭니다. 가변 배열은 해당 달의 모든 객체를 보유합니다. 이렇게하면 훨씬 쉽게 반복 할 수 있습니다. –

+0

그래서 일단 초기 배열이 제공된다면 나는 월 합계와 다른 간격 분할 크기를 포함하는 다른 배열을 계산할 것입니다. – user1028028