检查在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时不会发生任何事情。