在这种情况下,“方法”对于types查找是不明确的,在Alamofire中是错误的
我正在使用Alamofire进行networking处理,遇到一个奇怪的错误。 看来我们不能通过Method enum作为参数。
[错误在方法参数上]
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) } } }
您必须指定要从中查找对象types的模块。 打电话给Alamofire.Method
有可能是名称相撞。 要解决这个问题,你可以使用enum
的限定名(包括模块名):
private func apiRequest(method: Alamofire.Method, ...
我也遇到过这个问题,因为我已经声明了一些与协议名称相同的名称:
protocol SomeProtocol { static func someTypeMethod() } protocol SomeProtocol { init(someParameter: Int) } protocol SomeProtocol { var mustBeSettable: Int { get set } var doesNotNeedToBeSettable: Int { get } }
虽然这个答案解决了构build错误, 在我的情况下,显示警告的文件是在两个不同的框架,所以Xcode不知道在哪里看。 这不是我们内部框架的预期行为,所以我只是删除了我不想要的副本。
你的申请可能在两个或两个以上的地方申报。 错误是说没有确定的方法来使用这个类,因为在它声明的代码中有几个不同的地方。
typesMethod
在两个导入的模块中声明。 您必须指定使用该types的模块。 使用Alamofire.Method
而不是Method
。
提示 :如果您经常使用该types,则可以在模块(应用程序)中创build一个types别名:
typealias Method = Almofire.Method
这样你就不需要在Almofire.
添加前缀Almofire.
任何更多。