關於遍歷 View 上所有的 UIButton 的問題,求問
for (id obj in self.view.subviews) {
if ([obj isKindOfClass:[UIButton Class]]) {
UIButton theButton = (UIButton)obj;
UIButton
theButton = (UIButton
)objx
;
為什麼在控制項上遍歷子控制項時我們要在 for in 中取 id 屬性再做 if ([obj isKindOfClass:[UIButton Class]])判斷而不能直解取 uibutton ,像下面這樣:
for (id obj in self.view.subviews) { UIButton theButton = (UIButton
)obj;
}🎜
曾经蜡笔没有小新2017-04-28 09:06:24
subview裡面不一定只有UIButton,也可以有其他控件,你這樣是將所有控件強制轉換為UIButton,這是很危險的,一不小心就會崩潰。
安全的做法是先判斷取到的控制項是不是UIButton,再強制轉換,此時的控制項其實是已經知道了的,強制轉換只是為了使用UIButton的方法和屬性而不會報錯而已。
另外id不是屬性吧親,它是oc一種特殊類型,你可以看做是object。任何物件都能用它做類型。