将c结构存储在中的通常方法是NSArray
什么?优点,缺点,内存处理?
值得注意的是,有什么之间的区别valueWithBytes
和valueWithPointer
-由Justin及以下鲶鱼提出。
这是苹果valueWithBytes:objCType:
为将来的读者讨论的链接...
对于某些横向思考并更多地关注性能,Evgen提出了STL::vector
在C ++中使用的问题。
(这引起了一个有趣的问题:是否有一个快速的c库,它没有什么不同,STL::vector
但很轻巧,可以最小化“整齐地处理数组” ...?)
所以原来的问题...
例如:
typedef struct _Megapoint {
float w,x,y,z;
} Megapoint;
那么:将自己的结构存储在中的通常的,最佳的,惯用的方法NSArray
是什么?如何处理该成语中的记忆?
请注意,我特别在寻找用于存储结构的惯用语。当然,可以通过开设一小堂新课来避免这一问题。但是,我想知道将结构实际放入数组中的常用习惯,谢谢。
顺便说一句,这也许是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];