在过去,我以编程方式创建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)")
}
Run Code Online (Sandbox Code Playgroud)
错误消息:'NSInvalidArgumentException',原因:' - [Playing.MainMenuViewController pressButton:]:无法识别的选择器发送到实例0x10440a6b0'
因此,花了几个小时扫描网络以获得答案后,推荐的解决方案是转到XCode.app/contents/developer/platforms/iPhoneOS.platform/DeviceSupport,然后删除与您设备的iOS匹配的目录.我做了什么,我得到了以下结果:
在删除目录"iOS11(15A372)"之前
错误消息:dyld_shared_cache_extract_dylibs失败
删除目录iOS"11(15A372)"
错误消息:此iPhone 6s运行的是iOS 11.0(15A372),此版本的Xcode可能不支持此功能.
救命!