significado que ejemplos discurso definición definicion aspectos ambivalente ambigüo ambiguos ambiguo swift swift3

que - Swift 3-PHFetchResult-enumerateObjects-Uso ambiguo de ''enumerar objetos''



que es ambiguo definicion (2)

Cuando se usa enumerateObjects con cierre final, hay dos candidatos sobrecargados para ello:

Actualmente, tenemos que desambiguar esto.

Si desea usar la sintaxis de cierre final, aquí tiene la solución:

assets.enumerateObjects(_:) { (object, count, stop) in content.append(object) }

Esto funciona porque es equivalente a

let unapplied = assets.enumerateObjects(_:) unapplied { (object, count, stop) in content.append(object) }

No estoy tan seguro de por qué estoy obteniendo "Uso ambiguo de ''enumerar objetos'' en Swift 3.

let collections = PHAssetCollection.fetchAssetCollections(with: .moment, subtype: .any, options: nil) collections.enumerateObjects { (collection, start, stop) in collection as! PHAssetCollection let assets = PHAsset.fetchAssets(in: collection, options: nil) assets.enumerateObjects({ (object, count, stop) in content.append(object) }) }

¿Alguna idea? Este código funcionaba bien en Swift 2.2


Me he encontrado con esto unas cuantas veces, y parece ser un problema con la sintaxis de cierre de Swift. Incluir paréntesis alrededor del argumento de cierre debería hacer el truco:

collections.enumerateObjects({ (collection, start, stop) in collection as! PHAssetCollection let assets = PHAsset.fetchAssets(in: collection, options: nil) assets.enumerateObjects({ (object, count, stop) in content.append(object) }) })

Edición: Por favor, vea la respuesta de Rintaro para una explicación de por qué sucede esto.