Swift for with循环括号

时间:2016-01-26 19:02:03

标签: swift compiler-errors

我通常在没有括号的情况下在swift中使用for循环,但是今天我把它们放在一边只是为了踢它们认为它们只是可选的并且没有按预期工作。

此代码有效:

if let tasks = getAllTasksWithManagedObjectContext(appDelegate.managedObjectContext){
    for task in tasks{
        appDelegate.managedObjectContext.deleteObject(task)
    }
}

这个没有:

if let tasks = getAllTasksWithManagedObjectContext(appDelegate.managedObjectContext){
    for (task in tasks){
        appDelegate.managedObjectContext.deleteObject(task)
    }
}

我收到此错误: enter image description here 怎么回事?

1 个答案:

答案 0 :(得分:7)

这里不允许使用括号。

查看Language Reference -> Statements并将C-style for-loopswift for-in

进行比较
  

for-statement→for for-init; ­expression­; expression­ ­code-block
  for-statement→for(for-init; ­expression­; expression­­code-block

VS

  

for-in-statement→for ­case {opt} pattern ­expression ­where-clause­(opt)code-block

第一个可以使用或不使用括号 - 您选择作为开发人员。

然而,后一个,您实际询问的那个没有()的版本,只有没有它们的版本。这意味着不允许在循环的“参数”周围使用它们括号。

上面链接的文档的屏幕截图,以提高可读性:

enter image description here

enter image description here