我想与在OBJ-C(选择器)原语一个可变阵列。什么是做到这一点的推荐的方法? NSArray和那些只能容纳对象。

有帮助吗?

解决方案

您应该使用NSValue包选择器,或者需要的任何其他类型的原语。在可可SEL是某种指针的,所以你可以使用[NSValue valueWithPointer:whatever]来构建它,[value pointerValue]把它弄出来。或者,一般来说,你可以使用[NSValue valueWithBytes:&whatever objCType:@encode(SEL)];这适用于任何类型的

其他提示

如果你想存储SEL对象的数组,最简单的事情是将SELs转换为使用NSString功能NSStringFromSelector()s,将它们存储在NSMutableArray,然后将它们转换回SELs当你拉出来使用NSSelectorFromString()功能

除了管理一个C数组自己(这绝对不是最好的选择,IMO),你唯一的选择就是使用NSArray / NSMutableArray,并使用NSNumber存储的数字。这是稍微烦人来获取值出比实际数字类型,但它从自己管理阵列的内存确实免费你。

由于原始类型通常只是数字(无论是整数或浮点数)或指针,有什么用用来包装那些为你的目的类的问题? NSMutableArrayNSNumbers,例如

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top