如何从 NSArray 生成 C 向量或数组?

发布于 2024-09-01 01:58:51 字数 75 浏览 2 评论 0原文

这可能吗?我还没有看到任何方法可以生成普通的旧 C 向量或数组。我的数组中只有 NSNumber 对象,我需要将其作为 C 向量或数组。

Is that possible? I've seen no method that would generate a plain old C vector or array. I have just NSNumber objects in my array which I need as C vector or array.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦回旧景 2024-09-08 01:58:51

mouviciel的答案的替代方法是使用 NSArray 的 getObjects:range: 方法。

id cArray[10];
NSArray *nsArray = [NSArray arrayWithObjects:@"1", @"2" ... @"10", nil];

[nsArray getObjects:cArray range:NSMakeRange(0, 10)];

或者,如果您在编译时不知道数组中有多少个对象:

NSUInteger itemCount = [nsArray count];
id *cArray = malloc(itemCount * sizeof(id));

[nsArray getObjects:cArray range:NSMakeRange(0, itemCount)];

... do work with cArray ...

free(cArray);

An alternative to mouviciel's answer is to use NSArray's getObjects:range: method.

id cArray[10];
NSArray *nsArray = [NSArray arrayWithObjects:@"1", @"2" ... @"10", nil];

[nsArray getObjects:cArray range:NSMakeRange(0, 10)];

Or, if you don't know how many objects are in the array at compile-time:

NSUInteger itemCount = [nsArray count];
id *cArray = malloc(itemCount * sizeof(id));

[nsArray getObjects:cArray range:NSMakeRange(0, itemCount)];

... do work with cArray ...

free(cArray);
南冥有猫 2024-09-08 01:58:51

如果您需要 C 数组来携带对象,您可以将其声明为 :

id cArray[ ARRAY_COUNT ];

id * cArray = malloc(sizeof(id)*[array count]);

然后您可以使用循环填充它:

for (int i=0 ; i<[array count] ; i++)
    cArray[i] = [array objectAtIndex:i];

If you need your C array to carry objects, you can declare it as :

id cArray[ ARRAY_COUNT ];

or

id * cArray = malloc(sizeof(id)*[array count]);

Then you can populate it using a loop:

for (int i=0 ; i<[array count] ; i++)
    cArray[i] = [array objectAtIndex:i];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文