Swift 如果不返回回调,会发生什么

Swift 如果不返回回调,会发生什么,swift,swift2,Swift,Swift2,现在我有了下一个函数: func processRequest(path: String, callback: ((json: JSON?, error: NSError?) -> Void)?) { // Code ... dispatch_async(dispatch_get_main_queue()) { callback?(json: JSON(data), error: nil) } }) 函数的调用方式: processRequest("te

现在我有了下一个函数:

func processRequest(path: String, callback: ((json: JSON?, error: NSError?) -> Void)?) {
   // Code ...

   dispatch_async(dispatch_get_main_queue()) {
       callback?(json: JSON(data), error: nil)
   }
})
函数的调用方式:

processRequest("test") { (json: JSON?, error: NSError?) in
    // Play with returned data
}
我的问题是:如果我不返回回调,会发生什么? 这很糟糕,否则什么可怕的事情都不会发生

情况示例:

func processRequest(path: String, callback: ((json: JSON?, error: NSError?) -> Void)?) {
   // Code ...

   if (condition) {
       // What will happen if I am here and not return back "callback"
   } else {
       dispatch_async(dispatch_get_main_queue()) {
           callback?(json: JSON(data), error: nil)
       }
   }
})

processRequest("test") { (json: JSON?, error: NSError?) in
    // Play with returned data
}

当您传递回调时,您将提供一个代码块,
processRequest
决定何时执行

给定
processRequest
的实现,如果将
nil
作为回调参数传递,则当
processRequest
决定调用回调函数的时间时,不会执行额外的代码

实际上,
回调
参数定义为
可选

callback: ((json: JSON?, error: NSError?) -> Void)?
只有当它是
而不是nil

callback?(json: JSON(data), error: nil)
更新 正如您所指出的,您没有传递
nil
回调,而是传递了一个带有空主体的回调。考虑到当前对
processRequest
的定义,结果是类似的:什么都没有发生

更具体地说,将一个空闭包排入主队列(有权更新用户界面的队列)。我认为这将在系统中产生无限小的开销,因为空代码块将被同步添加到主队列中,随后退出队列并最终执行。
同样,简短的回答是:什么也没发生

没有什么可怕的事情会发生,有时候你真的需要这样的东西。大多数情况下,虽然您希望最终调用它,可能是在30秒超时后。好的,但是如果我设置了回调,并且它不是nil,但我不会返回它。在我的逻辑中,函数请求的代码正在等待回调返回,但我不会这样做。你说的
我不会返回它是什么意思?