Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios swift中的关闭属性错误访问(EXC_错误访问)_Ios_Xcode_Swift_Initialization_Closures - Fatal编程技术网

Ios swift中的关闭属性错误访问(EXC_错误访问)

Ios swift中的关闭属性错误访问(EXC_错误访问),ios,xcode,swift,initialization,closures,Ios,Xcode,Swift,Initialization,Closures,我有测试类,带有按钮动作可选关闭: class Test : CustomViewFromXib { var button_action : (() -> ())? @IBAction func button_pressed(sender: AnyObject) { if let action = button_action { action() } } } 这就是我如何使用这个类: let test_vi

我有
测试
类,带有
按钮动作
可选关闭:

class Test : CustomViewFromXib {
    var button_action : (() -> ())?
    @IBAction func button_pressed(sender: AnyObject) {
        if let action = button_action {
            action()
        }
    }
}
这就是我如何使用这个类:

 let test_view = Test(frame: CGRect.nullRect)
 self.view.addSubview(test_view)
 test_view.button_action = {
    () -> () in
    print("test")
 }
我在第行得到
EXC\u BAD\u ACCESS
错误:

test_view.button_action = {
    () -> () in
    print("test")
}
我不知道为什么,因为我只想设置初始值。有可能那样做吗

更新: 我明白,没有一个属性或方法不能从我的对象调用。不仅仅是闭包,还有字符串(例如)

更新2: 这是我的代码的一个小例子,它再现了这个问题。我想我对初始化者有问题。。。

(XCode 6 Beta 5)

编写代码

let test_view = Test(frame: CGRect.nullRect)
 self.view.addSubview(test_view)
 test_view.button_action = {
    () -> () in
    print("test")
 }
而不是

let test_view = Test(frame: CGRect.nullRect)
 self.view.addSubview(test_view)
 test_view.button_action = { [unowned self]
    () -> () in
    print("test")
 }
下面是确切的详细理论答案

我用类似的代码创建了一个测试项目,它对我很有用——但我在interface builder中添加了测试视图(用于连接按钮)。所以我想说,这与设置button_action变量或closureHmm的类型无关。。我试图创建属性test:String=“xxx”并通过test\u view.test=“zzz”访问它,但它也不起作用。我还添加了test()方法,无法调用它。