UIKeyboardImpl不发布UITextField引用

时间:2018-10-11 04:02:55

标签: objective-c uikeyboard

https://github.com/Tencent/MLeaksFinder中使用MLeaksFinder时。我收到一个警告,提示未释放最后一个UIViewController中的UITextField。

我检查了Xcode上的内存图,发现UIKeyboardImpl仍在其m_autofillGroup(NSMutablableDictionary)中保存引用

然后我在UIWebView和WKWebView中尝试了此操作,并发现了相同的问题。 m_autofillGroup的打印如下:

{
    UIAutofillUUIDKey = "DBE0B81A-5E8E-444F-8FF6-0552C47FA554";
    UITextContentTypePassword = "<UITextField: 0x107012600; frame = (20 46; 335 36); text = ''; opaque = NO; gestureRecognizers = <NSArray: 0x1c5a45a90>; layer = <CALayer: 0x1c4e2bbe0>>";
    UITextContentTypeUsername = "<HLFullPhoneNumberTextField: 0x107058c00; baseClass = UITextField; frame = (20 0; 335 36); text = ''; opaque = NO; gestureRecognizers = <NSArray: 0x1c5a45010>; layer = <CALayer: 0x1c4e2b840>>";
}

我也在不同的iOS系统中进行了尝试,发现iOS 11.4和iOS 12出现了此问题,但iOS 11.0很好。

我尝试了resignFirstResponder和endEditing,但是没有用。

能帮我解决这个问题,并在不更改私有API的情况下发布参考。

0 个答案:

没有答案