Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
Swift2 Swift 2.0回调语法:什么是$0?_Swift2 - Fatal编程技术网

Swift2 Swift 2.0回调语法:什么是$0?

Swift2 Swift 2.0回调语法:什么是$0?,swift2,Swift2,我正在更新到Swift 2.0 我的旧代码: animateButtonsOnScreen(callback: completedImageEditingButtonSwap) 编译器需要的新代码: animateButtonsOnScreen(callback: { completedImageEditingButtonSwap($0) }) 回调:没有参数。这个新的$0对象是什么?我没有参数,所以它在这里试图引用什么 注意:编译器在我想使用这种新语法的地方这样说 使用闭包安全地包装对函数

我正在更新到Swift 2.0

我的旧代码:

animateButtonsOnScreen(callback: completedImageEditingButtonSwap)
编译器需要的新代码:

animateButtonsOnScreen(callback: { completedImageEditingButtonSwap($0) })
回调:
没有参数。这个新的$0对象是什么?我没有参数,所以它在这里试图引用什么

注意:编译器在我想使用这种新语法的地方这样说

使用闭包安全地包装对函数的调用

使用一些代码更新

func swapButtonsForImageCapture()
{

    if(DeviceProperties.isIphone4() == true)//iPhone 4s needs smaller icon
    {
        _takePhotoButton.setImage(UIImage(named: "snapimageicon4s"), forState:UIControlState.Normal)
    }else
    {
        _takePhotoButton.setImage(UIImage(named: "snapimageicon"), forState:UIControlState.Normal)
    }
    _takePhotoButton.removeTarget(nil, action: nil, forControlEvents: UIControlEvents.AllEvents)
    _takePhotoButton.addTarget(_controller, action: Selector("takePhoto:"), forControlEvents: UIControlEvents.TouchUpInside)
    let buttonsToAnimateOut:[UIButton] = [_textButton,_filtersButton,_previewButton]
    animateButtonsOffScreen(buttonsToAnimateOut, callback: { self.swapButtonsForImageCapturePart2($0) })
}

func swapButtonsForImageCapturePart2()
{
    let buttonsToAnimateIn:[UIButton] = [_swapCameraButton,_flashButton,_galleryButton]
    animateButtonsOnScreen(buttonsToAnimateIn, callback: { self.completedImageCaptureButtonSwap($0) })
}

可能是编译器错误
$0
是闭包的第一个参数,但正如您所说,您的函数不接受任何参数。当然。我现在只需要更新整个代码库3次。为什么我会认为编译器已经下定决心了哈哈!你能提供更多的代码来看看吗?嗯,具体是什么?这只是一个空的param函数调用。也许在一些游乐场的例子中也会发生这种情况?这会有帮助,我想了解为什么会发生这种情况,这对我来说也很奇怪。可能是一个编译器错误
$0
是闭包的第一个参数,但正如您所说,您的函数不接受任何参数。当然。我现在只需要更新整个代码库3次。为什么我会认为编译器已经下定决心了哈哈!你能提供更多的代码来看看吗?嗯,具体是什么?这只是一个空的param函数调用。也许在一些游乐场的例子中也会发生这种情况?这会有帮助,我想知道为什么会发生这种情况,对我来说也很奇怪。