gpt4 book ai didi

ios - 键盘通知导致 EXC_BAD_ACCESS 崩溃

转载 作者:行者123 更新时间:2023-11-28 05:33:18 24 4
gpt4 key购买 nike

当我尝试处理键盘通知时,我有一个应用程序崩溃了。我正在使用 xCode 6.0 并且该项目是在 Swift 中。

为了找出问题所在,我创建了一个新应用,它只包含一个 UITextView 和 4 个将 View 固定到顶部、左侧和右侧边缘并设置固定高度的约束。

我的 ViewController 有以下内容:

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()
self.observeKeyboard()
}
override func viewDidDisappear(animated: Bool) {
NSNotificationCenter().removeObserver(self)
}

func observeKeyboard() {
NSNotificationCenter.defaultCenter().addObserver(self, selector:Selector(keyboardWillAppear()), name:UIKeyboardWillChangeFrameNotification, object:nil)
}

func keyboardWillAppear() {
println("keyboardWillAppear")
}
}

当我在模拟器中启动应用程序时,

keyboardWillAppear

打印到控制台,当我在 TextView 中点击时,应用程序崩溃并显示:

EXC_BAD_ACCESS code=1:

错误:0x0 内存读取失败

键盘已显示,但另一个 keyBoardWillAppear 未打印到控制台。

此应用程序中没有其他内容,只有上面的代码和 4 个约束。我刚刚打开了全新的项目,试图找出我在其他应用程序中遇到的问题。我还尝试在 viewDidAppear 中订阅通知,我还尝试了另一个通知 UIKeyboardWillShowNotificationUIKeyboardDidShowNotification,但结果总是一样的。

我错过了什么?感谢您的帮助!

最佳答案

您正在使用函数 keyboardWillAppear() 的返回创建选择器。尝试使用字符串:Selector("keyboardWillAppear:")

另请注意:您正在 viewDidLoad 中注册键盘通知,通常每个 View Controller 生命周期只调用一次。最好在 viewWillAppear: 中注册这些通知。

关于ios - 键盘通知导致 EXC_BAD_ACCESS 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26500829/

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