使用[[self.view viewWithTag:999] removeFromSuperview];
安全地檢查視圖是否真的存在?檢查在removeFromSuperview之前viewWithTag是否存在
在模擬器上沒有錯誤,但它會在真實設備上導致沒有問題?
有沒有不使用這種情況的缺點?
使用[[self.view viewWithTag:999] removeFromSuperview];
安全地檢查視圖是否真的存在?檢查在removeFromSuperview之前viewWithTag是否存在
在模擬器上沒有錯誤,但它會在真實設備上導致沒有問題?
有沒有不使用這種情況的缺點?
直接撥打[[self.view viewWithTag:999] removeFromSuperview];
完全可以。如果視圖存在,那麼[self.view viewWithTag:999]
將返回視圖,並且它將從其超級視圖中移除。如果視圖不存在,那麼[self.view viewWithTag:999]
將返回nil
和傳遞任何消息到零不會採取任何影響。
因此,在您的情況下,不需要檢查視圖是否實際存在或不存在。從蘋果文檔
答案UIView的
如果接收方的上海華不爲零時,上海華盈釋放 接收器。如果您打算重新使用視圖,請務必在調用此方法之前保留該視圖,並在適當時候再次釋放該視圖。
切勿在視圖的drawRect:方法內調用此方法。
帶標籤的視圖返回nil時不會發生任何事情。