gpt4 book ai didi

iphone - UIKeyboardDidHideNotification 错误应用程序崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:46:45 27 4
gpt4 key购买 nike

我正在使用 UIView。该应用程序正在使用 ARC。 UIView 用于多个 View Controller 。在 UIView 中添加了一个 UIKeyboardDidHideNotification 的监听器。监听器在某些 View Controller 上工作正常,而在其他 View Controller 上它会使应用程序崩溃。特别是当我在第一个 View Controller 中使用后在第二个 View Controller 中使用时。错误是

* -[appname keyboardWillHide]: message sent to deallocated instance 0xb9c2760

在某些情况下,监听器会被调用两次。

我在 uiview drawrect 方法中添加的代码是:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide) name:UIKeyboardWillHideNotification object:nil];

监听器的代码是

-(void)keyboardWillHide
{
if(boolisViewlifted)
{

CGRect newFrame=self.frame;
newFrame=CGRectMake(self.frame.origin.x, self.frame.origin.y+250, self.frame.size.width, self.frame.size.height);
self.frame=newFrame;
boolisViewlifted=false;

}
}

uiview 出现在调用 View Controller 的顶部。请让我知道导致此错误的原因以及解决方法。

最佳答案

由于内存警告,您的 View 正在卸载。您需要覆盖 dealloc 方法并删除所有 View 中所有通知的观察者,其中您添加了通知观察者。

//do add in all views
-(void)dealloc
{
//[super dealloc];//As you are using ARC don't call super's dealloc
[[NSNotificationCenter defaultCenter] removeObserver:self];
}

关于iphone - UIKeyboardDidHideNotification 错误应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13777920/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com