我想创建一个与iPhone的短信应用程序(消息)完全相同的ChatView。我正在以编程方式进行此操作,并尝试通过键盘向上移动textView。我想在UIKeyboardWillShowNotification调用的函数中执行此操作。您能帮我调试此错误吗?

在ChatViewController.m中,我在loadView函数中为UIKeyboardWillShowNotification设置了侦听器,并将self设置为textView委托,但它崩溃了,说:
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'***-[ChatViewController keyboardWillShow]:无法识别的选择器已发送至实例

但是我在ChatViewController.m中定义keyboardWillShow
为什么找不到该功能?

以下是重要文件:

http://github.com/acani/acani-chat/blob/master/Lovers/Classes/ChatViewController.h
http://github.com/acani/acani-chat/blob/master/Lovers/Classes/ChatViewController.m

我注释掉了听众,以免崩溃。

随意git clone [email protected]:acani / acani-chat.git

谢谢!

最佳答案

您已注释掉的第120和121行,但我想并不是要这样做,因为没有其他引用来订阅通知,因此在传递选择器时会出现问题。 Objective-C消息名称中的冒号(:)本身就是名称的一部分。因此,您在传递的选择器中缺少尾部冒号。解决该问题,将消除您的错误。

此外,您应该在视图消失时查看对removeObserver:的调用(viewDidUnload)。

10-08 08:04