从java到目标c的迭代
我需要将一些java代码转换成objective-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)
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))
{
...
}