0

我要将一些 JS 移植到本机 ObjC 代码。由于结构不适合数组,因此需要对其进行包装。

JS代码如下:

var bezierVertices = [{0: 14},{10: 32},{24: 16}];

简单明了的 JS:匿名对象数组。

我必须遵守以下要求:让代码尽可能紧凑,这意味着我在使用 [NSValue valueWithCGPoint:ccp(x,y)] 提出 NSValue 的 NSArray 时被拒绝了

走 malloc 方式也不符合这个标准。他们想要像上面提到的 JS 一样紧凑的东西。

在写像 @"0:14;10:32;24:16"; 这样丑陋的 NSString 之前 这是在一个循环中拆分和解析的,我认为 SO 可以帮助带来一些干净的东西:) 我被允许使用 .mm 所以 ObjC++ 解决方案也可以适用,但我对 C++ 一无所知......

谢谢!J。

4

2 回答 2

4

他们想要像上面提到的 JS 一样紧凑的东西

“他们”是谁?“他们”是否理解 Objective-C 是一种编译语言并且源代码的“紧凑性”在很大程度上无关紧要?

总之,吐槽一下。您可以像这样制作一个 C CGPoints 数组:

CGPoint myArray[] = {{0.0, 14.0}, {10.0, 32.0}, {24.0, 16.0}}; 

这是一个标准的 C 数组初始化程序。你得到这样的元素数量:

int nElements = sizeof myArray / sizeof(CGPoint);
于 2012-05-23T12:22:12.927 回答
1

如果您需要管理可变长度的顶点数组,C++ 提供了std::vector<CGPoint>.

于 2012-05-23T12:25:41.017 回答