迁移到 swift 后,Alamofire 对成员 request() 问题的引用不明确 3
Ambigious reference to member request() issues with Alamofire after migration to swift 3
所以我是 swift 的新手,所以请多多包涵。我的查询在 swift 2 中运行,但在我迁移到 swift 3 后,我得到了错误
Ambiguous reference to member 'request(_:withMethod:parameters:encoding:headers:)'
下面是它出现的代码:
Alamofire.request(.GET, serverRequest).validate().responseJSON( { response in
switch response.result{
case .Success:
if let JSON = response.result.value {
let final = JSON[wantedClass] as! String//forces output to string
self.failure("You asked what your " + wantedClass + " is, it is:", message: final)
}
case .Failure(let error):
print(error)
}
})
不知道是什么问题
我有同样的问题 - 他们重新排序了方法中的参数,所以现在 '.get' 应该放在 withMethod.
之后
如果你在你的项目中使用 Alamofire 4.0(我假设你这样做,因为我在版本 4 上遇到了这个错误)你需要写
Alamofire.request(serverRequest, withMethod: .get)
或者例如
Alamofire.request(serverRequest, withMethod: .get, parameters: nil, encoding: .url, headers: nil)
我有 Alamofire swift3
分支在 Xcode 8.0 ß6 中工作,代码如下:
Alamofire.request("https://\(ip)/api/version", withMethod: .get,
parameters: nil, encoding: .json, headers: headers)
.validate()
.responseJSON { response in
//debugPrint(response)
switch response.result {
case .success:
if let JSON = response.result.value {
let version = Mapper<Version>().map(JSON)
print("Version \(version?.server!)")
}
case .failure(let error):
print (error)
}
}
请密切注意您对 .request
的论点的顺序和类型
您应该只有一个 Alamofire 框架处于活动状态。尝试在另一个克隆中重做它,或者在您拥有的克隆中尝试以下操作?
pod cache clean --all
pod install
你的Podfile
里面有什么?
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!
target 'NewApp' do
pod 'Alamofire',
:git => 'https://github.com/Alamofire/Alamofire.git',
:branch => 'swift3'
end
如果您正在使用 swift 5
你的条目是这样的
import Alamofire
class AlamofireNetworkRequest {
static func sendRequest(url: String) {
guard let url = URL(string: url) else { return }
.request(url).responseJSON { (response) in
print(response)
}
}
}
在.request前添加AF
像这样
AF.request(url).responseJSON { (response) in
所以我是 swift 的新手,所以请多多包涵。我的查询在 swift 2 中运行,但在我迁移到 swift 3 后,我得到了错误
Ambiguous reference to member 'request(_:withMethod:parameters:encoding:headers:)'
下面是它出现的代码:
Alamofire.request(.GET, serverRequest).validate().responseJSON( { response in
switch response.result{
case .Success:
if let JSON = response.result.value {
let final = JSON[wantedClass] as! String//forces output to string
self.failure("You asked what your " + wantedClass + " is, it is:", message: final)
}
case .Failure(let error):
print(error)
}
})
不知道是什么问题
我有同样的问题 - 他们重新排序了方法中的参数,所以现在 '.get' 应该放在 withMethod.
之后如果你在你的项目中使用 Alamofire 4.0(我假设你这样做,因为我在版本 4 上遇到了这个错误)你需要写
Alamofire.request(serverRequest, withMethod: .get)
或者例如
Alamofire.request(serverRequest, withMethod: .get, parameters: nil, encoding: .url, headers: nil)
我有 Alamofire swift3
分支在 Xcode 8.0 ß6 中工作,代码如下:
Alamofire.request("https://\(ip)/api/version", withMethod: .get,
parameters: nil, encoding: .json, headers: headers)
.validate()
.responseJSON { response in
//debugPrint(response)
switch response.result {
case .success:
if let JSON = response.result.value {
let version = Mapper<Version>().map(JSON)
print("Version \(version?.server!)")
}
case .failure(let error):
print (error)
}
}
请密切注意您对 .request
您应该只有一个 Alamofire 框架处于活动状态。尝试在另一个克隆中重做它,或者在您拥有的克隆中尝试以下操作?
pod cache clean --all
pod install
你的Podfile
里面有什么?
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!
target 'NewApp' do
pod 'Alamofire',
:git => 'https://github.com/Alamofire/Alamofire.git',
:branch => 'swift3'
end
如果您正在使用 swift 5
你的条目是这样的
import Alamofire
class AlamofireNetworkRequest {
static func sendRequest(url: String) {
guard let url = URL(string: url) else { return }
.request(url).responseJSON { (response) in
print(response)
}
}
}
在.request前添加AF
像这样
AF.request(url).responseJSON { (response) in