gpt4 book ai didi

objective-c - 自动装箱 NSArray?

转载 作者:搜寻专家 更新时间:2023-10-30 20:26:13 25 4
gpt4 key购买 nike

所以,我经常使用 NSArrays,所以我决定尝试创建一个宏,根据这里的宏,从传入的基元创建一个数组:

https://bitbucket.org/snej/myutilities/src/319441e240fa/CollectionUtils.h

#define $array(values...) ({ void *v[] = { values }; const char *encodings[] = { /* how do I get the @encode-ings for each? */ };  _boxArray(v, encodings, sizeof(values) / sizeof(void *))})

NSValue *_box(void *value, const char *encoding); // defined by CollectionUtils

NSArray *_boxArray(void **values, const char **encodings, int count)
{
id objects[count];

for (int i = 0; i < count; i++) {
// how can I box all of the values that need boxing?
objects[i] = _box(values[i], encodings[i]);
}

return [NSArray arrayWithObjects:objects count:count];
}

所以基本上,我要问的是,我如何使用可变参数宏对传递给宏的每个参数执行操作?

最佳答案

这不是您问题的直接答案,但是...也许你应该等待 LLVM 4.0,它包括原语的自动装箱功能?

看看:http://blog.ablepear.com/2012/02/something-wonderful-new-objective-c.html

关于objective-c - 自动装箱 NSArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9539968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com