Swift语言:警卫声明后如何继续?

Swift语言:警卫声明后如何继续?,swift,Swift,为什么continue会标记错误: 仅允许在循环内继续 如何解决此问题?continue语句应在循环中使用 如果要检查多个条件,则应在guard语句之后使用if语句,而不是guard您不能“继续”当前范围(在您的情况下,使用addToUnloadedImagesRow(uuu:forLocation:)方法)。guard语句的else块必须离开当前范围 总之,看看你的代码,我认为你只想这样做: private func addToUnloadedImagesRow(row: Int, forLo

为什么
continue
会标记错误:

仅允许在循环内继续


如何解决此问题?

continue
语句应在
循环中使用


如果要检查多个条件,则应在guard语句之后使用
if
语句,而不是
guard
您不能“继续”当前范围(在您的情况下,使用
addToUnloadedImagesRow(uuu:forLocation:)
方法)。guard语句的else块必须离开当前范围

总之,看看你的代码,我认为你只想这样做:

private func addToUnloadedImagesRow(row: Int, forLocation:String!) {
    if unloadedImagesRows[forLocation] == nil {
        unloadedImagesRows[forLocation] = [Int]()
    }
    unloadedImagesRows[forLocation]!.append(row)
}

如果您确实想使用
guard
,您可以这样做:

private func addToUnloadedImagesRow(row: Int, forLocation:String!) {
    guard unloadedImagesRows[forLocation] != nil else {
        unloadedImagesRows[forLocation] = [row]
        return
    }
    unloadedImagesRows[forLocation]!.append(row)
}

但就我个人而言,在这种情况下,我会发现一个
if
更容易阅读。

如果你想恢复函数,你需要使用if语句。
private func addToUnloadedImagesRow(row: Int, forLocation:String!) {
    guard unloadedImagesRows[forLocation] != nil else {
        unloadedImagesRows[forLocation] = [row]
        return
    }
    unloadedImagesRows[forLocation]!.append(row)
}