でエラーが私はそれを介してアクセスしようとしています私のビューコントローラで
import UIKit
import AlamofireObjectMapper
import Alamofire
class ContactUsModelClass {
func getContactUsApiCall(URL: URL, callback: @escaping ((Dictionary<AnyHashable,Any>) ->())) {
Alamofire.request(URL, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil)
.responseObject { (response: DataResponse<GetContactusResponse>) in
print(response.result.value!)
switch response.result {
case .success:
// optional is NOT NULL, neither NIL nor NSNull
guard let end = response.result.value else {
return
}
//end = nullToNil(end.loginAuthenticationInfo?.accessToken)
callback(response.result.value)
break
case .failure:
if let error = response.result.error as? URLError {
print("URLError occurred: \(error)")
} else {
print("Unknown error: \(String(describing: response.result.error))")
}
break
}
}
}
}
実際には自明である。 Use of unresolved id
は、呼び出しているメソッドが現在のスコープにないことを意味します。 getContactUsApiCall
は実際にはクラスContactUsModelClass
の内部で宣言されているので、そのクラスのオブジェクトから呼び出す必要があります。あるいは、メソッドをclass
メソッドに変更し、ContactUsModelClass.getContactUsApiCall(...)
と呼ぶこともできます。
第2のエラーの場合、response.result.valueのタイプはGetContactusResponse?
です。したがって、コールバックの署名もその型を使用する必要があります。これと同じように:
class func getContactUsApiCall(URL: URL, callback: @escaping ((GetContactusResponse) ->())) {
Alamofire.request(URL, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil)
.responseObject { (response: DataResponse<GetContactusResponse>) in
switch response.result {
case .success:
// optional is NOT NULL, neither NIL nor NSNull
guard let end = response.result.value else {
return
}
callback(end)
break
case .failure:
if let error = response.result.error as? URLError {
print("URLError occurred: \(error)")
} else {
print("Unknown error: \(String(describing: response.result.error))")
}
break
}
}
}