美文网首页
iOS 11 UITextField内存泄漏问题

iOS 11 UITextField内存泄漏问题

作者: 贵叔勇闯天涯 | 来源:发表于2022-11-09 11:51 被阅读0次

    一、背景

    在项目开发的时候,使用了AMLeaksFinder,检查界面元素的泄漏问题时,发现UITextFeild没有被释放,导致了内存泄漏。

    1、最新解决方案(2022/11/23)

    - 使用下面的临时方案,在打包安装会发生崩溃,感谢谢谢@海洋之巅
    image.png
    - 所以最新解决方案:
    a:OC版本
    self.autocorrectionType = UITextAutocorrectionTypeNo;
    
    a:Swift版本
    self.autocorrectionType = .no
    

    2、临时解决方案

    新建UITextField Category.在Category中,重写removeFromSuperview方法
    1.OC版本
    - (void)removeFromSuperview{
        NSString *version = [UIDevice currentDevice].systemVersion;
        if (version.doubleValue >= 11.0) {
            id view = [self valueForKey:@"textContentView"];
            if (view) {
                [view removeFromSuperview];
                [self setValue:nil forKey:@"textContentView"];
            }
        }
    }
    
    1.swift版本
    extension UITextField {
        open override func removeFromSuperview() {
            if #available(iOS 11.0, *) {
                let view = self.value(forKey: "textContentView") as? UIView
                if (view != nil) {
                    view?.removeFromSuperview()
                    self.setValue(nil, forKey: "textContentView")
                }
            }
        }
    }
    
    欢迎大家交流,这是个学习的地方!

    相关文章

      网友评论

          本文标题:iOS 11 UITextField内存泄漏问题

          本文链接:https://www.haomeiwen.com/subject/decntdtx.html