Ios 已向实例发送无法识别的选择器通知

Ios 已向实例发送无法识别的选择器通知,ios,xcode,swift,instance,Ios,Xcode,Swift,Instance,我在Swift的短信应用程序上观看了这段视频,并逐字复制了它。然而,Xcode最近有一些更新,所以我不确定这是问题所在还是我输入了错误的内容。我也看了其他类似的问题,仍然找不到问题所在 我在viewDidLoad()中输入的代码涉及显示键盘: NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWasShown", name: UIKeyboardDidShowNotification, ob

我在Swift的短信应用程序上观看了这段视频,并逐字复制了它。然而,Xcode最近有一些更新,所以我不确定这是问题所在还是我输入了错误的内容。我也看了其他类似的问题,仍然找不到问题所在

我在viewDidLoad()中输入的代码涉及显示键盘:

    NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWasShown", name: UIKeyboardDidShowNotification, object: nil)
然后我在这里调用keyboardWasShow函数:

 func keyboardWasShown(notification: NSNotification) {

    let dict : NSDictionary = notification.userInfo!
    let s : NSValue = dict.valueForKey(UIKeyboardFrameEndUserInfoKey) as! NSValue
    let rect : CGRect = s.CGRectValue()

    UIView.animateWithDuration(0.3, delay: 0, options: .CurveLinear, animations: {

        self.resultsScrollView.frame.origin.y = self.scrollViewOriginalY - rect.height
        self.frameMessageView.frame.origin.y = self.frameMessageOriginalY - rect.height

        var bottomOffset : CGPoint = CGPointMake(0, self.resultsScrollView.contentSize.height - self.resultsScrollView.bounds.size.height)

        self.resultsScrollView.setContentOffset(bottomOffset, animated: false)

        }, completion: {
            (finished: Bool) in

            //

    })

}
我之所以认为它是KeyboardWasShow函数,是因为输出显示了KeyboardWasShow]:未识别的选择器发送到实例0x7f848c12be40


任何帮助都将不胜感激

您实现的方法采用一个参数,因此需要在选择器名称的末尾添加一个冒号

 let center = NSNotificationCenter.defaultCenter()
 center.addObserver(self, 
                    selector: "keyboardWasShown:",
                    name: UIKeyboardDidShowNotification,
                    object: nil)

你的怀疑是不对的。你能发布整个错误消息吗?如果你真的看到错误消息,它会给你很多信息。您忽略了它的开头。寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。你遗漏了完整的错误信息。我的怀疑是正确的。抱歉,没有发布足够的信息。谢谢你的评论。谢谢rdelmar!成功了。这是新的还是已经有一段时间了?这是我第一次看到它。@JackB03这在Objective-C中一直存在。据我所知,它从Swift开始就一直存在。在Objective-C中,冒号是名称的一部分,因此someMethod和someMethod:是两种不同的方法。很高兴知道这一点。再次感谢你!