[quote=引用 6 楼 zhangao0086 的回复:] 你甚至可以写得更加详细: self.view.subviews.map( {(subview: AnyObject) -> AnyObject in if subview.isKindOfClass(UIImageView) { subview.removeFromSuperview() } return subview }) Swift入门易,精通难
你甚至可以写得更加详细: self.view.subviews.map( {(subview: AnyObject) -> AnyObject in if subview.isKindOfClass(UIImageView) { subview.removeFromSuperview() } return subview }) Swift入门易,精通难
是的,removeFromSuperview本意是为了将view从视图层级上删除,但是ARC是在对象的引用计数为0时释放对象占用的内存,如果你没有任何强引用指向其中的子视图,那么在removeFromSuperview调用之后,视图层级上没有了子视图的引用,即self.view不再持有子视图的强引用,那么子视图就会被释放掉。 可以说removeFromSuperview并不涉及内存管理的问题,如果有内存泄漏,那肯定是自己的逻辑代码有问题
[quote=引用 1 楼 zhangao0086 的回复:] 就算不报错你这么做也是不对的,因为视图是被添加到window上的,数组只是一个引用,关键是对子视图调用removeFromSuperview方法: self.view.subviews.map{ $0.removeFromSuperview()}
就算不报错你这么做也是不对的,因为视图是被添加到window上的,数组只是一个引用,关键是对子视图调用removeFromSuperview方法: self.view.subviews.map{ $0.removeFromSuperview()}
1,420
社区成员
425
社区内容
加载中
试试用AI创作助手写篇文章吧