在ARC上显示UIKeyboard时出现内存泄漏

Joh*_*ode 4 iphone ios

UIKeyboard被调用时,内存分配以及何时不释放UIKeyboard被隐藏.如果它是缓存它的框架,有什么方法可以清除它吗?这些代码是我用来创建UITextField以及如何隐藏的代码UIKeyboard:

    #import <UIKit/UIKit.h>

    @interface SignInTextField : UITextField

    -(id)initWithIndexPath:(NSIndexPath*)indexPath;

    @end

    #import "SignInTextField.h"

    @implementation SignInTextField

    -(id)initWithIndexPath:(NSIndexPath*)indexPath{
        self = [super init];
        if (self) {
            if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
                // iPad
                self.frame = CGRectMake(110, 10, 600, 30);
            } else {
                self.frame = CGRectMake(110, 11, 150, 30);
            }

            self.tag = [indexPath row];
            self.returnKeyType = UIReturnKeyDone;
            self.autocapitalizationType = UITextAutocapitalizationTypeNone;
        }
        return self;
    }

    //SettingTextField
    SignInTextField *textField = [[SignInTextField alloc]initWithIndexPath:indexPath];
    textField.delegate = self;

    #pragma mark - Text Field CallBack
    -(void)textFieldDidBeginEditing:(UITextField *)textField{
        activeField = textField;
    }

    - (void)textFieldDidEndEditing:(UITextField *)textField {

        if(textField.tag == 0) temp_email = [NSString         stringWithFormat:@"%@",textField.text];
        if(textField.tag == 1) temp_password = [NSString stringWithFormat:@"%@",textField.text];
    }

    - (BOOL)textFieldShouldReturn:(UITextField *)textField {
        [textField resignFirstResponder];
        return YES;
   }
Run Code Online (Sandbox Code Playgroud)

这是泄漏点.

Apu*_*urv 8

当您第一次打开键盘时,它将被iOS本机框架缓存.它由UIKit框架处理.

它不是内存泄漏.下次当需要显示键盘时,应用程序将使用缓存键盘.

如果内存要求很高,则本机框架将根据需要释放缓存的视图.仍然应用程序需要内存,框架会为此生成内存警告.