c 구조를 저장하는 일반적인 방법은 무엇입니까 NSArray
? 장점, 단점, 메모리 처리?
특히, 차이 무엇 valueWithBytes
과 valueWithPointer
- 저스틴 아래 메기에 의해 제기.
다음valueWithBytes:objCType:
은 향후 독자 를 위한 Apple의 토론 링크입니다 .
측면 적 사고와 성능에 대한 더 많은 것을보기 위해 Evgen은 C ++STL::vector
에서 사용하는 문제를 제기했습니다 .
(흥미로운 문제가 발생합니다. STL::vector
"배열의 깔끔한 처리"를 최소화 할 수있는 훨씬 더 가벼우면서도 다르지 않은 빠른 c 라이브러리가 있습니까?)
그래서 원래 질문은 ...
예를 들면 :
typedef struct _Megapoint {
float w,x,y,z;
} Megapoint;
그래서 : 자신의 구조를.에 저장하는 정상적이고 가장 좋은 관용적 방법은 무엇이며 NSArray
, 그 관용구에서 메모리를 어떻게 처리합니까?
특히 구조체를 저장하는 일반적인 관용구를 찾고 있습니다. 물론 새로운 작은 수업을 만들어 문제를 피할 수 있습니다. 그러나 실제로 구조체를 배열에 넣는 일반적인 관용구를 알고 싶습니다.
BTW는 아마도 NSData 접근 방식입니다. 최고가 아닙니다 ...
Megapoint p;
NSArray *a = [NSArray arrayWithObjects:
[NSData dataWithBytes:&p length:sizeof(Megapoint)],
[NSData dataWithBytes:&p length:sizeof(Megapoint)],
[NSData dataWithBytes:&p length:sizeof(Megapoint)],
nil];
BTW를 참조 지점으로 사용하고 Jarret Hardie 덕분에 다음과 같이 저장하는 방법 CGPoints
과 유사한 방법이 있습니다 NSArray
.
NSArray *points = [NSArray arrayWithObjects:
[NSValue valueWithCGPoint:CGPointMake(6.9, 6.9)],
[NSValue valueWithCGPoint:CGPointMake(6.9, 6.9)],
nil];
( How can I add CGPoint objects to an NSArray the easy way? )