“경로”와 같은 것을 설명하는 약 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
? 그것은 당신에게 더 효과적 일 수 있습니다.