【发布时间】:2017-08-20 17:08:12
【问题描述】:
过去我以编程方式创建 UIButton 没有问题,但自从我使用 Xcode 9 和 Swift 4 以来,我就找不到解决此错误的方法。
//Adding target to UIButton
func PositionStartButton(xOffset: Float){
StartButton.frame = CGRect(x: Int(0 - 40 + xOffset), y: 0, width: 80, height: 80)
StartButton.setImage(#imageLiteral(resourceName: "Logo_Final_WHITE_Face"), for: .normal)
StartButton.addTarget(self, action: "pressButton:", for: .touchUpInside)
ScrollView.addSubview(StartButton)
}
//The target function
func pressButton(_ sender: UIButton){
print("\(sender)")
}
错误消息:'NSInvalidArgumentException',原因:'-[Playing.MainMenuViewController pressButton:]:无法识别的选择器发送到实例 0x10440a6b0'
【问题讨论】:
-
你的第一行代码永远不会在任何版本的 Swift 中编译。所以,你应该有问题,否则,你已经从你的没有问题的代码中改变了太多。无论如何,您需要显示该行的放置位置。显示整个方法,包括行。
-
还有一个,你能告诉我你从哪里得到 Xcode 9 Beta 6 吗?我现在可以在Apple's download page 上找到的 Xcode 版本是 Xcode 9 beta 5 (Build 9M202q)。
-
谢谢,你是对的。我已将代码编辑为在 Swift 2 时代可以使用的版本。你能明白我现在在说什么吗?
-
我相信我能看到。但是您的问题只是 Swift 2.2 的一个问题和 Swift 4 的另一个问题的组合。
-
为什么我还要用谷歌搜索这些东西。 WTF??
标签: uibutton selector swift4 xcode9-beta addtarget