1

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

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

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

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

您如何将这两者组合成一个语句,是否有必要?谢谢!

4

2 回答 2

4

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

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

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

于 2013-02-26T12:02:01.100 回答
4

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

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

[copiesLabels makeObjectsPerformSelector:@selector(removeFromSuperView)];
[receiversLabel makeObjectsPerformSelector:@selector(removeFromSuperView)];
于 2013-02-26T12:02:43.223 回答