存储c结构的常用方法是NSArray
什么?优点,缺点,内存处理?
值得注意的是,有什么之间的区别valueWithBytes
和valueWithPointer
-由Justin和鲶鱼下面提出.
这是 Apple valueWithBytes:objCType:
对未来读者讨论的链接 ......
对于一些横向思考和更多关注性能,Evgen提出了STL::vector
在C++中使用的问题.
(这引发了一个有趣的问题:是否有一个快速的c库,不是STL::vector
很轻,但更轻,允许最小的"整理数组处理"......?)
那么原来的问题......
例如:
typedef struct _Megapoint {
float w,x,y,z;
} Megapoint;
Run Code Online (Sandbox Code Playgroud)
那么:在一个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];
Run Code Online (Sandbox Code Playgroud)
BTW作为参考点,感谢Jarret Hardie,以下是如何存储CGPoints
和类似的NSArray
:
NSArray *points = [NSArray arrayWithObjects:
[NSValue valueWithCGPoint:CGPointMake(6.9, 6.9)],
[NSValue valueWithCGPoint:CGPointMake(6.9, 6.9)],
nil];
Run Code Online (Sandbox Code Playgroud)