2011-01-15 3 views
1

다음 문제를 해결하는 방법을 궁금합니다. 한 쌍의 값을 기반으로 한 값에 액세스하려고합니다. 값 0과 1에 대해 3을 얻고 싶습니다. 4와 5에 대해 2를 얻고 싶습니다. 3 차원 배열을 선언 할 생각이었습니다. 이것을 달성하기위한 더 좋은 방법이 있습니까? 그렇지 않다면 ObjectiveC에서 3d 배열을 어떻게 선언 할 수 있습니까?ObjectiveC에서 3 차원 배열을 선언하고 사용하는 방법은 무엇입니까?

감사합니다.

답변

2

결과 쌍을 (트리플이 아닌) 값 쌍을 기반으로하려면 2D 배열이 필요합니다.

일반적으로 2D 배열은 배열 배열입니다. 당신의 Obj-C의있는 NSArray 객체를 사용하려는 경우, 당신은 같은 것을 할 것 :

NSArray* yCoord1 = [NSArray arrayWithObjects:@"oneValue", @"secondValue", nil]; 
NSArray* yCoord2 = [NSArray arrayWithObject:@"thirdValue"]; 

NSArray* array = [NSArray arrayWithObjects:yCoord1,yCoord2,nil]; 

을 그리고, 배열에 액세스하려면 :

NSUInteger xCoord = 0; 
NSUInteger yCoord = 1; 

[[array objectAtIndex:xCoord] objectAtIndex:yCoord]; //Result: @"secondValue" 

를 그것은 일반 C 배열을 사용하는 것도 가능하다 이런 식으로; 당신이 그것을 원한다면 튜토리얼 톤에 대한 구글의 "2D C ​​배열".

1

대부분 또는 모든 쌍의 값을 가지며 정수 값만 저장하는 경우 (실제 예에서와 같이) 실제 C 배열은 사용자의 요구를 가장 잘 충족시킬 수 있습니다. 당신이 찾고있는 것을 얻기위한 3D 배열.

데이터 집합이 희박한 경우 두 개의 키 값을 연결하여 "1-Firstval; 2-SecondVal"와 같이 숫자를 유지하면 효과가있는 것처럼 보입니다. NSDictionary에서 찾고 있습니다. 그렇다면 여전히 많은 메모리를 사용하지 않고도 빠른 조회가 가능합니다.

+0

감사! 당신의 대답은 정확하고 훌륭하지만, andyvn22의 대답은 나의 필요에 더 잘 맞습니다. – Jakub

관련 문제