我将一些JS移植到本机ObjC代码。由于结构不适合数组内部,因此需要将其包装起来。
JS代码如下:
var bezierVertices = [{0: 14},{10: 32},{24: 16}];
简单明了的JS:匿名对象的数组。
我必须遵守以下要求:让代码尽可能紧凑,这意味着在使用[NSValue valueWithCGPoint:ccp(x,y)]提出NSValue的NSArray时我被拒绝了
沿着malloc方式走下去也不符合这个标准。他们想要像上面提到的那样紧凑的东西。
在编写像@" 0:14; 10:32; 24:16&#34 ;;那个分裂并在一个循环中解析,我认为这可以帮助带来一些干净的东西:) 我允许使用.mm,所以ObjC ++解决方案也适合,但我根本不了解C ++ ...
谢谢! 学家
答案 0 :(得分:4)
他们想要像上面提到的那样紧凑的东西
谁是“他们”? “他们”是否有任何理解,Objective-C是一种编译语言,源代码的“紧凑性”在很大程度上是无关紧要的?
无论如何,咆哮。你可以像这样制作一个CGPoints的C数组:
CGPoint myArray[] = {{0.0, 14.0}, {10.0, 32.0}, {24.0, 16.0}};
这是标准的C阵列初始化程序。你得到这样的元素数量:
int nElements = sizeof myArray / sizeof(CGPoint);
答案 1 :(得分:1)
如果需要管理可变长度的顶点数组,C ++提供std::vector<CGPoint>
。