‘Método’ es ambiguo para el tipo de búsqueda en este contexto, el Error en la Alamofire

Estoy usando Alamofire para el manejo de la red de swift y ejecutar en un error extraño. Me parece que no pueden pasar a la Método enum como parámetro.
[Error en el parámetro de Método]

'Método' es ambiguo para el tipo de búsqueda en este contexto, el Error en la Alamofire

private func apiRequest(method: Method, url: String, apiData: [String : AnyObject], completion:(finished: Bool, response: AnyObject?) ->Void) {

    Alamofire.request(method, url, parameters: apiData).responseJSON{ response in
        if let JSON = response.result.value {
            completion(finished: true, response: JSON)
        } else {
            completion(finished: false, response:nil)
        }
    }
}
  • Usar el nombre completo, por ejemplo, Alamofire.Method si hay una colisión de nombres. Usted está haciendo ya que para request función.
InformationsquelleAutor Ravi Prakash | 2015-11-05

8 Kommentare

  1. 79

    Usted tiene que especificar el módulo a partir de la cual a la búsqueda de tipo de objeto.
    Llame Alamofire.Method

  2. 12

    Probablemente hay una colisión de nombres. Para solucionar esto, se puede utilizar el nombre completo de la enum (incluyendo el nombre del módulo):

    private func apiRequest(method: Alamofire.Method, ...
  3. 7

    También me he encontrado con este problema, porque me han declarado una serie del mismo nombre del protocolo:

    protocol SomeProtocol {
       static func someTypeMethod()
    }
    
    protocol SomeProtocol {
       init(someParameter: Int)
    }
    
    protocol SomeProtocol {
       var mustBeSettable: Int { get set }
       var doesNotNeedToBeSettable: Int { get }
    }
  4. 1

    Usted puede tener una clase declarada en dos o más lugares en su aplicación. El error está diciendo que no hay manera concluyente que el uso de esta clase porque hay un par de diferentes lugares en el código se declara.

  5. 0

    Mientras que la respuesta a esta arregló el error de compilación; en mi caso, el archivo que muestra la advertencia fue en dos marcos diferentes para Xcode no sabía dónde mirar. Esta no era la intención de comportamiento de los marcos así que, simplemente, se elimina la copia que yo no quería.

  6. 0

    El tipo Method se declara en dos módulos importados. Usted tiene que especificar el módulo de la que utiliza el tipo. Uso Alamofire.Method en lugar de Method.

    Punta: Si usted está utilizando el tipo a menudo, usted puede crear un alias de tipo en el módulo (aplicación):

    typealias Method = Alamofire.Method

    De esa manera no será necesario que el prefijo del tipo con Alamofire. más.

  7. 0

    Cambiar el tipo enum nombre a diferentes &…

    • Utilizar el $(inherited) bandera, o
    • Quitar la configuración de generación de la meta.

    Destino – > la construcción de configuración- >ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES, el Valor es de tipo Booleano, haga clic en el otro, cambie el valor a $(heredado)
    realizar la actualización del pod
    Hecho

    a continuación, intente ejecutar el proyecto , el error se ha ido ! (Lo he probado en mi proyecto)

    enum ‘XYZ’ButtonType {

    }

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea