2011-11-27 65 views
1

是否有方法通過特定標籤選擇對象而不使用循環?xcode中的特定對象選擇

所以不是:

for (UIImageView *someObject in [self.view subviews]) { 
    if (someObject.tag == someInteger) { 
     [someObject removeFromSuperview]; 
    } 
} 

使用的東西與像更直接的方式:

[[UIImageView.whereTagEquals someInteger] removeFromSuperview]; 

雖然我想,如果有這樣一個選項,它的工作方式相同。它會在所有UIImageViews的「幕後」循環,如果找到合適的,就做一些事情。

或者,也許有人可以幫助我用不同的方法獲得相同的期望結果。我注意到,由於循環太多,我的遊戲在某個點開始減速。

謝謝!

回答

3

您可以使用的一個襯墊是-[UIView viewWithTag:],但這也可能會在內部循環。對於大量視圖來說,更快的方法是使用NSDictionaryNSNumber實例作爲鍵和視圖作爲值)。字典在內部使用散列,因此在大多數情況下它們更快。

0

試試這個:

[[self.view viewWithTag:someInteger] removeFromSuperview];