这里只是一个实际的Objective-C问题。
我有两个for
循环用于两个数组和相同的对象SGAdressLabel
:
for (SGAdressLabel *tmpLabel in recieversLabels){
[tmpLabel removeFromSuperview];
}
for (SGAdressLabel *tmpLabel02 in copiesLabels){
[tmpLabel02 removeFromSuperview];
}
如何将这两者合并为一个陈述,是否有必要?谢谢!
答案 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)];