gpt4 book ai didi

ios - 匿名闭包参数不能在具有显式参数的闭包内使用

转载 作者:搜寻专家 更新时间:2023-11-01 06:40:28 25 4
gpt4 key购买 nike

我对 Swift 比较陌生,仍在掌握闭包的概念。我已经读过这篇文章(Anonymous closure can not be used inside a closure that has explicit arguments)。然而,答案是将过滤器从 () 更改为 {},但我不知道如何将其实现到我的函数中。

    <<< ImageRow()
{
$0.tag = "Image"
$0.title = "Choose your profile pic"
if let tutorPic = currentuser!.objectForKey("ProfPhoto") as! PFFile!
{
tutorPic.getDataInBackgroundWithBlock({(imageData:NSData?,error:NSError?)->Void in
if(error == nil)
{
let image = UIImage(data: imageData!)
print("YOOWAHH")
print(image)
print("***********")
self.imagez = image
print(self.imagez)
$0.value = imagez


}
})


}


}

错误在 $0.value = imagez 行。

我从 Parse 下载图像数据并想将其设置为我的表单的默认值。但是编译器说我已经有了显式参数,所以它不知道如何引用表单的参数。我该如何解决这个问题?

最佳答案

问题在于,因为每个 block 都是单独处理以进行分派(dispatch)等,所以它不知道如何正确地为 $0 返回对另一个 block 的引用。无论您是否显式定义封闭 block ,编译器都将假定这就是您所说的 $0 时所指的 block 。

要解决此问题,只需在顶部 block 中说:let myButton = $0,然后在封闭 block 中引用 myButton

将来,如果您不知道 block 的格式应该是什么,只需重新编写函数调用,自动完成功能就会把 block 格式的其余部分带回来。

关于ios - 匿名闭包参数不能在具有显式参数的闭包内使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36098501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com