Ios 在Xcode 9 swift 4中更改按钮标题时出现sigabrt错误

Ios 在Xcode 9 swift 4中更改按钮标题时出现sigabrt错误,ios,swift,xcode,Ios,Swift,Xcode,我有一个屏幕,上面有一个UIImage和一个UIButton。我编写了这样的代码,当点击按钮时,图像会发生变化,并且工作正常。然后我想添加代码来制作按钮的标题。在我添加代码后,程序崩溃,出现sigabrt错误。我检查了连接,一切看起来都很好。如何更改按钮的文本/标题而不使其崩溃 class MapViewController: UIViewController { @IBOutlet weak var mapButton: UIButton! @IBOutlet weak var mapIma

我有一个屏幕,上面有一个UIImage和一个UIButton。我编写了这样的代码,当点击按钮时,图像会发生变化,并且工作正常。然后我想添加代码来制作按钮的标题。在我添加代码后,程序崩溃,出现sigabrt错误。我检查了连接,一切看起来都很好。如何更改按钮的文本/标题而不使其崩溃

class MapViewController: UIViewController {

@IBOutlet weak var mapButton: UIButton!
@IBOutlet weak var mapImage: UIImageView!
override func viewDidLoad() {
    super.viewDidLoad()
    //mapButton.setTitle("test", for: .normal)
    // Do any additional setup after loading the view.
}
@IBAction func mapButtonTapped(_ sender: UIButton) {

    if x == true
    {
        mapImage.image = #imageLiteral(resourceName: "map")
        x = false
        mapButton.setTitle("1st Floor Map", for: .normal)
    }
    else
    {
        mapImage.image = #imageLiteral(resourceName: "School Map 2015-2016-2")
        mapButton.setTitle("2nd Floor Map", for: .normal)
        x = true
    }
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
 var x:Bool = true;

地图按钮映射(\usender:)
中,您可以更改

mapButton.setTitle("2nd Floor Map", for: .normal)

sender
这是您点击的按钮,您选择了UIButton的类型,您可以作为UIButton访问其属性


关于sigabrt错误,您应该尝试。

请添加错误日志使用调试模式,设置断点。这可能与您使用的图像文字有关,也可能与它们不在主捆绑包中有关。尝试用
mapImage.image=UIImage(名为:“第一层地图”)
替换它们。另一种可能是你的故事板中存在重复(断开)连接。这解决了问题。为什么发送者工作而不是mapButton?它们不是一样吗?我认为问题在于你的地图按钮链接到了故事板(可能是重复的或丢失的连接)。在这种情况下,它们是相同的。如果连接是重复的,那么连接旁边不是会有一个“!”吗?如果连接缺失,那么连接旁边不是会有一个空圆圈吗?我也没看见。我添加了一张图片。如果
@ibvar-mapputton:UIButton之前的圆圈出现,请在助理编辑器模式下打开您的故事板和viewController为空,表示您错过了连接。我没有看到任何空圆圈
sender.setTitle("2nd Floor Map", for: .normal)