将两个'for'语句合并为一个

时间:2013-02-26 11:59:11

标签: iphone ios objective-c cocoa-touch

这里只是一个实际的Objective-C问题。

我有两个for循环用于两个数组和相同的对象SGAdressLabel

for (SGAdressLabel *tmpLabel in recieversLabels){
    [tmpLabel removeFromSuperview];
}

for (SGAdressLabel *tmpLabel02 in copiesLabels){
    [tmpLabel02 removeFromSuperview];
}

如何将这两者合并为一个陈述,是否有必要?谢谢!

2 个答案:

答案 0 :(得分:4)

您可以将两个数组合并为一个并使用:

NSArray *combinedLabels = [recieversLabels arrayByAddingObjectsFromArray:copiesLabels];
for (SGAdressLabel *tmpLabel in combinedLabels){
    [tmpLabel removeFromSuperview];
}

请注意,使用此解决方案,两个数组中的对象将获得两次removeFromSuperview

答案 1 :(得分:4)

我相信你的方式很好。由于您正在使用2个不同的数组,因此尝试使用单个循环进行迭代不会有任何好处。或者您可以将一个数组附加到一个数组中。但它不会带来任何新的优势,并且会使人们在将来迷惑它们。

或者你可以完全避免循环,但迭代正在下面发生..

[copiesLabels makeObjectsPerformSelector:@selector(removeFromSuperView)];
[receiversLabel makeObjectsPerformSelector:@selector(removeFromSuperView)];