Я новичок в iOS, и я немного смущен тем, что, как использовать singleton с Alamofire и как одноэлемент важен. Я создал класс networkWrapper, в котором я написал сообщение Alamofire и метод get, но я не использовал singleton.Как использовать singleton с Alamofire с помощью Swift 3?
Как создать класс Wrapper для Alamofire с singleton? Как я могу получить все трюки, которые действительно важны?
Ниже приведен код для класса-оболочки:
import Foundation
import UIKit
import Alamofire
import SwiftyJSON
class AFWrapper: NSObject {
//TODO :-
/* Handle Time out request alamofire */
class func requestGETURL(_ strURL: String, success:@escaping (JSON) -> Void, failure:@escaping (Error) -> Void)
{
Alamofire.request(strURL).responseJSON { (responseObject) -> Void in
//print(responseObject)
if responseObject.result.isSuccess {
let resJson = JSON(responseObject.result.value!)
//let title = resJson["title"].string
//print(title!)
success(resJson)
}
if responseObject.result.isFailure {
let error : Error = responseObject.result.error!
failure(error)
}
}
}
static func requestPOSTURL(_ strURL : String, params : [String : AnyObject]?, headers : [String : String]?, success:@escaping (JSON) -> Void, failure:@escaping (Error) -> Void){
Alamofire.request(strURL, method: .post, parameters: params, encoding: JSONEncoding.default, headers: headers).responseJSON { (responseObject) -> Void in
//print(responseObject)
if responseObject.result.isSuccess {
let resJson = JSON(responseObject.result.value!)
success(resJson)
}
if responseObject.result.isFailure {
let error : Error = responseObject.result.error!
failure(error)
}
}
}
}
В моем контроллере:
if newLength == 6
{
let textZipCode = textField.text! + string
let dict = ["id" : "43","token": "2y103pfjNHbDewLl9OaAivWhvMUp4cWRXIpa399","zipcode" : textZipCode] as [String : Any]
//Call Service
AFWrapper.requestPOSTURL(HttpsUrl.Address, params: dict as [String : AnyObject]?, headers: nil, success: { (json) in
// success code
print(json)
}, failure: { (error) in
//error code
print(error)
})
setFields(city: "Ajmer", state: "Rajasthan", country: "India")
return newLength <= 6
}
Хорошо позвольте мне проверить это. Спасибо – kishor0011
Пожалуйста, уточните мой обновленный вопрос, где я звоню. Сказал (а) спасибо: – kishor0011
Не могли бы вы оформить вашу проблему? В контроллере вы написали APIManager.apiPost(), но ваше имя класса NSObject является AFWrapper. Если вы используете мой ответ, пожалуйста, следуйте всем шагам. – Amanpreet