尝试访问类可可类的类的属性会产生运行时错误

时间:2016-05-28 17:22:00

标签: swift macos cocoa

我创建了一个继承自NSButton的自定义按钮类型(类),并且还有一些其他方法,但是当我尝试访问我自己声明的方法时,我遇到了运行时错误。这是我的代码:

import Cocoa

class MCButton: NSButton {
    func testFunc()->Bool {
        return true
    }
}

class ViewController: NSViewController {
    @IBOutlet weak var button: MCButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        if button.testFunc() {   //Thread 1: EXC_BAD_ACCESS(code=2, address=0x608000264600)
            button.title = "Hi!"
        }
    }

}

请注意,当我只使用超类(NSButton)中声明的方法时,我不会遇到任何问题。问题是什么?我该怎么做才能解决它?

1 个答案:

答案 0 :(得分:0)

您必须在InterfaceBuilder中正确设置按钮的类。它可能具有预定义的值集,即NSButton。您必须将其设置为MCButton

只有这样,您才能真正获得对其中一个MCButton的正确实例的引用。