Swift 3如何在func中解析EXC_BAD_ACCESS

时间:2017-06-19 13:13:03

标签: ios swift3

我有以下课程:

导入UIKit

class RegistrationViewController: SuperViewController {
    @IBOutlet weak var errorMessageLabel: ErrorMessageLabel!

    @IBOutlet weak var registerButton: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()

        checkValidData()
    }

    private func checkValidData()
    {
        errorMessageLabel.setErrorText(registerButton, message: "")
        ...
    }

我在View Controller中使用:

Thread 1: EXC_BAD_ACCESS (code=2, address=...)

我在setErrorText调用

上得到import UIKit extension UILabel { open func setErrorText(button:UIButton?, message:String) { self.text = message self.isHidden = (message == "") if (button != nil) {button?.isEnabled = (message == "")} } } class ErrorMessageLabel: UILabel { }

如果我将ErrorMessageLabel.swift更改为以下

$(".reasons_items").click(function () {
    $(this).toggleClass("reasons_items_click");
    var clicked_text = $(this).find("p").text();
    // clicked_text variable will have the value of clicked <li>
});

代码有效。显然,这是放置setErrorText的错误位置,因为代码不适用于所有UILabel。什么是正确的解决方案?

我是IOS开发的相对新手。

1 个答案:

答案 0 :(得分:4)

您需要将视图中的标签类(storyboard或nib)更改为ErrorMessageLabel 你可以在这里找到它: http://prntscr.com/flkor0