[ios] NSArray에 CGPoint 객체를 쉽게 추가하는 방법은 무엇입니까?

“경로”와 같은 것을 설명하는 약 50 개의 CGPoint 객체가 있으며 NSArray에 추가하고 싶습니다. 주어진 인덱스에 해당하는 CGPoint를 반환하는 메소드가 될 것입니다. p1 = …; 같은 50 개의 변수를 만들고 싶지 않습니다. p2 = … 등. 객체로 NSArray를 초기화 할 때 해당 지점을 “즉시”정의 할 수있는 쉬운 방법이 있습니까?



답변

UIKit애플에 CGPoint에 대한 지원을 추가 NSValue당신이 할 수 있습니다 :

NSArray *points = [NSArray arrayWithObjects:
                     [NSValue valueWithCGPoint:CGPointMake(5.5, 6.6)],
                     [NSValue valueWithCGPoint:CGPointMake(7.7, 8.8)],
                     nil];

CGPoint만큼 [NSValue] 인스턴스를 나열하고 목록을 nil로 끝냅니다. 이 구조의 모든 객체는 자동 해제됩니다.

반대로 배열에서 값을 가져올 때 :

NSValue *val = [points objectAtIndex:0];
CGPoint p = [val CGPointValue];


답변

나는 이것을 사용한다 :

배열 만들기 :

NSArray *myArray = @[[NSValue valueWithCGPoint:CGPointMake(30.0, 150.0)],[NSValue valueWithCGPoint:CGPointMake(41.67, 145.19)]];

첫 번째 CGPoint 객체를 가져옵니다.

CGPoint myPoint = [myArray[0] CGPointValue];


답변

최소한의 형태로 이것을 작성할 수도 있습니다.

CGPoint myArray[] = { CGPointMake(5.5, 6.6), CGPointMake(7.7, 8.8) };

CGPoint p2 = myArray[1];


답변

봤어 CFMutableArray? 그것은 당신에게 더 효과적 일 수 있습니다.


답변