是否可以在Swift中将闭包作为变量传递?

时间:2014-06-23 23:37:55

标签: xcode segmentation-fault closures swift

以这种常见情况为例:

class FooClass {
    var success:AnyObject! -> Void
    var failure:NSError! -> Void

    init() {
        self.success = ({ object in })
        self.failure = ({ error in })
    }

    func request(success:(AnyObject! -> Void), failure:(NSError! -> Void)) {
        self.success = success
        self.failure = failure
    }
}

extension FooClass: NSURLConnectionDelegate, NSURLConnectionDataDelegate {
    func connection(connection: NSURLConnection!, didFailWithError error:NSError!) {
        println("Connection error: \(error)")
        self.failure(error)
    }
}

看起来不错......编译...... Agh !!! enter image description here WTF Swift?!这适用于ObjC !!

由于与我的代码示例类似的实现,我完全确定编译器错误正在发生。

似乎不喜欢闭包是空/可选的想法。

有人可以权衡这个吗?编译错误?用户错误?

0 个答案:

没有答案