从java到目标c的迭代

从java到目标c的迭代,java,objective-c,iteration,Java,Objective C,Iteration,我需要将一些java代码转换成objective-c。以下代码: private ArrayList<Integer> filterIDs11 = new ArrayList<Integer>(); private ArrayList<Integer> filterIDs29 = new ArrayList<Integer>(); for (Integer id : ((type == FilterType.BITS_11)

我需要将一些java代码转换成objective-c。以下代码:

private ArrayList<Integer> filterIDs11 = new ArrayList<Integer>();
private ArrayList<Integer> filterIDs29 = new ArrayList<Integer>();

for (Integer id : ((type == FilterType.BITS_11)
                ? filterIDs11
                : filterIDs29))
        { //some code}
private ArrayList filterIDs11=new ArrayList();
private ArrayList filterIDs29=新的ArrayList();
对于(整数id:((type==FilterType.BITS_11)
?过滤器11
:过滤器(29))
{//一些代码}
我知道迭代器是如何工作的,但是我在objective-c中实现迭代器的方法非常昂贵。也许我错过了什么或者不知道什么。作为数组列表,我使用的是
NSMutableArray
填充了
NSNumber
。要使用这些数字进行迭代,我需要类似:
inti-in(是或否)?[filterIDs11 intValue]
。。。。。但这不起作用。你会怎么做

别那么可爱

ArrayList<Integer> filter;

if (type == FilterType.BITS_11) {
    filter = filterIDs11;
}
else {
    filter = filterIDs29;
}
for (Integer id : filter) {
    ....
当然,我们可以保持原来扭曲的表情:

for (NSNumber id in ((type == FilterType_BITS_11)
            ? filterIDs11
            : filterIDs29))
但是为什么呢?

你可以直接写

for (NSNumber* number in (type == FilterType_Bits11 ? filterIDs11 : filterIDs29))
{
    ...
}

不能将id用作变量名,因为id是Objective-C(指向任何Objective-C对象的指针)中的保留字

这是不客观的C@samir-不,但是翻译成Objective-C很简单。这正是我想要的。我知道这应该很容易。非常感谢。
for (NSNumber* number in (type == FilterType_Bits11 ? filterIDs11 : filterIDs29))
{
    ...
}