我通常在没有括号的情况下在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)
}
}
答案 0 :(得分:7)
这里不允许使用括号。
查看Language Reference -> Statements
并将C-style for-loop
与swift 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
第一个可以使用或不使用括号 - 您选择作为开发人员。
然而,后一个,您实际询问的那个没有(
和)
的版本,只有没有它们的版本。这意味着不允许在循环的“参数”周围使用它们括号。
上面链接的文档的屏幕截图,以提高可读性: