কীভাবে সুইফটে আলমোফায়ার এপিআই থেকে জেএসএন প্রতিক্রিয়া পার্স করবেন?


125

নিম্নলিখিত কোডটি আমি লিখেছি এবং আমি জেএসএনেও প্রতিক্রিয়া পাচ্ছি তবে জেএসওএন এর ধরণটি "যেকোনওবজেক্ট" এবং আমি এটিকে অ্যারে রূপান্তর করতে পারছি না যাতে আমি এটি ব্যবহার করতে পারি।

Alamofire.request(.POST, "MY URL", parameters:parameters, encoding: .JSON) .responseJSON
{
    (request, response, JSON, error) in

    println(JSON?)
}

আমি আপনার প্রশ্নটিকে নিম্নোক্ত করি নি তবে আমি ধরে নিলাম কারণ JSON পার্স করা খুব স্পষ্ট বিষয়, একটি পরিষ্কার, সোজা উত্তর দিতে। SwiftyJSON নামক এই লাইব্রেরিটি ব্যবহার করে দেখুন
ইসুুরু

@ ইসুরুর ঠিক আছে! আমি সেই লাইব্রেরিটি দেখেছি কিন্তু আমি আলোমফায়ার ব্যবহার করছি! তবে আপনি কি আমাকে নমুনা কোডটি পাঠাতে পারবেন যাতে আপনি সুইফটিজসন ব্যবহার করেছেন? কোড আমার জন্য কাজ করে না!
বিকাশকারী

আমিও আলমোফায়ারের সাথে সুইফটিজেএসএন ব্যবহার করি। আমি ঠিক এই মত প্রতিক্রিয়া পাস let data = JSONValue(JSON!)। তারপরে আমি এর মতো মানগুলি বের করতে পারি data["Id"]। SwiftyJSON ডকুমেন্টেশন কীভাবে পছন্দসই ধরণের মানগুলি পুনরুদ্ধার করতে পারে তার উদাহরণ সরবরাহ করে। ত্রুটি ঠিক কী পাচ্ছেন?
ইসুরু

উত্তর:


160

সুইফট ২.০ অ্যালামোফায়ার ৩.০-এর উত্তরটি দেখতে আসলে আরও দেখতে হবে:

Alamofire.request(.POST, url, parameters: parameters, encoding:.JSON).responseJSON
{ response in switch response.result {
                case .Success(let JSON):
                    print("Success with JSON: \(JSON)")

                    let response = JSON as! NSDictionary

                    //example if there is an id
                    let userId = response.objectForKey("id")!

                case .Failure(let error):
                    print("Request failed with error: \(error)")
                }
    }

https://github.com/Alamofire/Alamofire/blob/master/Documentation/Alamofire%203.0%20Migration%20Guide.md

অ্যালামোফায়ার 4.0 এবং সুইফট 3.0 এর জন্য আপডেট করুন:

Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default)
            .responseJSON { response in
                print(response)
//to get status code
                if let status = response.response?.statusCode {
                    switch(status){
                    case 201:
                        print("example success")
                    default:
                        print("error with response status: \(status)")
                    }
                }
//to get JSON return value
            if let result = response.result.value {
                let JSON = result as! NSDictionary
                print(JSON)
            }

        }

13
আপনি কীভাবে JSON এর প্রকৃত সামগ্রী পাবেন? এটি কোন ধরণের অবজেক্ট? নকশা এবং ডকুমেন্টেশনটি এতই অস্পষ্ট যে আমি এটি বুঝতে পারি না এবং ইন্টারনেটে কোনও উদাহরণ খুঁজে পাই না ...
অ্যালেক্স ওয়ার্ডেন

আমি আমার উত্তরে একটি দুটি লাইন যুক্ত করেছি যাতে সহায়তা করা উচিত।
জোসেফ জেরাঘটি

@ জোসেফগেরঘাটি এনকোডিং প্যারামিটারের ফলাফল নিয়ে সংকলক আমাকে বলছেন একটি অতিরিক্ত যুক্তি কল রয়েছে ... কোনও ধারণা?
amariduran

@ জেচ-দুরান ইতিবাচক নয়, তবে আমি অস্পষ্টভাবে মনে করি কিছুক্ষণ আগে এইরকম কিছু ঘটেছে। আমি মনে করি লাইব্রেরিগুলি আপডেট হচ্ছে না বা সম্ভবত সুইফ্ট সংস্করণটি দিয়ে বর্তমান নয় এটির সাথে এর কিছু করার ছিল। আপনি সর্বশেষতম সংস্করণে
জোসেফ জেরাঘটি

1
@ অ্যালেক্স ওয়ার্ডেন একমত হয়েছেন, এই পৃষ্ঠাটি আমাকে এই প্রশ্নগুলির উত্তর দিতে সহায়তা করেছে এবং একটি দুর্দান্ত সমাধান প্রদান করেছে: github.com/SwiftyJSON/SififtyJSON
ইলজন

31

উপরে উল্লিখিত মত আপনি SwiftyJSON লাইব্রেরি ব্যবহার করতে পারেন এবং আমি নীচের মত আপনার মান পেতে পারেন

Alamofire.request(.POST, "MY URL", parameters:parameters, encoding: .JSON) .responseJSON
{
    (request, response, data, error) in

var json = JSON(data: data!)

       println(json)   
       println(json["productList"][1])                 

}

স্ক্রিপ্ট থেকে আমার জসন পণ্য তালিকা ফিরে

{ "productList" :[

{"productName" : "PIZZA","id" : "1","productRate" : "120.00","productDescription" : "PIZZA AT 120Rs","productImage" : "uploads\/pizza.jpeg"},

{"productName" : "BURGER","id" : "2","productRate" : "100.00","productDescription" : "BURGER AT Rs 100","productImage" : "uploads/Burgers.jpg"}    
  ]
}

আউটপুট:

{
  "productName" : "BURGER",
  "id" : "2",
  "productRate" : "100.00",
  "productDescription" : "BURGER AT Rs 100",
  "productImage" : "uploads/Burgers.jpg"
}

আমি ইনস্টল করার পরে সুইফটিজসন জিনিসটি ব্যবহার করার চেষ্টা করছি তবে সুইফটিজসন ফাইলে প্রায় 300 টি ত্রুটি দেওয়া আছে, কেউ কি সমস্যার মুখোমুখি হয়েছেন? আমি, এক্সকোড সংস্করণ .2.২, আইওএস সংস্করণ ৮.১, কোকোপডস ৩ ব্যবহার করে [ গিথুব ] ( গিথুব / সুইফটিজেএসএন / সুইফটিজেএসএন ) ডকুমেন্টেশন হিসাবে উল্লেখ করেছি ।
শশী

2
শহরবাসী. ত্রুটিগুলি কী? একটি পৃথক প্রশ্ন জিজ্ঞাসা করুন এবং কিছু বিশদ সরবরাহ করুন। সুইফটিজেএসন যাদুবিদ্যার মতোই সুন্দর। সম্ভব হলে ব্যবহার করুন Use
জিয়া

সত্যিই জেসন স্ট্রিংটি একটি কংক্রিট সুইফট অবজেক্টে রূপান্তর করা উচিত যাতে আপনি এটি প্রাকৃতিক উপায়ে পরিষ্কারভাবে ব্যবহার করতে পারেন। তাদের স্ট্রিং নাম দিয়ে ক্ষেত্রগুলি অ্যাক্সেস করা হাস্যকর এবং ত্রুটির প্রবণ।
মাফিন ম্যান 21

26

সুইফট 3, অ্যালামোফায়ার 4.4, এবং সুইফটিজেএসন:

Alamofire.request(url, method: .get)
  .responseJSON { response in
      if response.data != nil {
        let json = JSON(data: response.data!)
        let name = json["people"][0]["name"].string
        if name != nil {
          print(name!)
        }
      }
  }

এটি এই জেএসএন ইনপুটটিকে বিশ্লেষণ করবে:

{
  people: [
    { name: 'John' },
    { name: 'Dave' }
  ]
}

এখানে অ্যালামোফায়ার সুইফটি-জেএসওএন-নির্দিষ্ট প্লাগইন রয়েছে যা সুস্পষ্ট JSON()রূপান্তরকরণের প্রয়োজনীয়তা সরিয়ে দেয় : github.com/SwiftyJSON/Alamofire-SwiftyJSON
রবিন মাচার্গ ২৯'১৮

এটি আমাকে সহায়তা করে, তবে
জেএসএন

24

আমি সুইট 2-এর জন্য গিটহাবের উত্তর পেয়েছি

https://github.com/Alamofire/Alamofire/issues/641

Alamofire.request(.GET, URLString, parameters: ["foo": "bar"])
    .responseJSON { request, response, result in
        switch result {
        case .Success(let JSON):
            print("Success with JSON: \(JSON)")

        case .Failure(let data, let error):
            print("Request failed with error: \(error)")

            if let data = data {
                print("Response data: \(NSString(data: data, encoding: NSUTF8StringEncoding)!)")
            }
        }
    }

3
এটি সুইফট ২.০ + অ্যালামোফায়ার জেএসএন পার্সিংয়ের সঠিক সংস্করণ।
সাকিব ওমর

5
হুম আমি এখনও একটি ত্রুটির বার্তা নির্মিত ব্যর্থ হচ্ছি: '(: _,: _, _) -> অকার্যকর' থেকে পরিবর্তনীয় নয় 'রেসপন্স <AnyObject, NSError> -> অকার্যকর'
Alex

@ এ্যালেক্স আমি এটি সমাধান করার জন্য যা ব্যবহার করেছি তার জন্য এই উত্তরটি দেখুন ।
জোসেফ

তোমাকে অনেক ধন্যবাদ ! সার্ভার, জীবন রক্ষাকারী প্রতিক্রিয়া বার্তাটি সঠিকভাবে প্রদর্শন করার জন্য আমি কতগুলি বিষয় চেষ্টা করেছি তা আপনার কোনও ধারণা নেই!
থাইবাউট নোয়া

17

আমি জেএসওন বিশেষজ্ঞ বা সুইফট বিশেষজ্ঞ নই, তবে নিম্নলিখিতগুলি আমার পক্ষে কাজ করছে। :) আমি আমার বর্তমান অ্যাপ্লিকেশন থেকে কোডটি বের করেছি, এবং কেবল "মাইলগ থেকে প্রিন্টলনে" পরিবর্তন করেছি এবং কোড ব্লক হিসাবে প্রদর্শিত হওয়ার জন্য স্পেস দিয়ে ইন্টেন্ট করেছি (আশা করি আমি এটি ভাঙ্গি নি)।

func getServerCourseVersion(){

    Alamofire.request(.GET,"\(PUBLIC_URL)/vtcver.php")
        .responseJSON { (_,_, JSON, _) in
          if let jsonResult = JSON as? Array<Dictionary<String,String>> {
            let courseName = jsonResult[0]["courseName"]
            let courseVersion = jsonResult[0]["courseVersion"]
            let courseZipFile = jsonResult[0]["courseZipFile"]

            println("JSON:    courseName: \(courseName)")
            println("JSON: courseVersion: \(courseVersion)")
            println("JSON: courseZipFile: \(courseZipFile)")

          }
      }
}

আশাকরি এটা সাহায্য করবে.

সম্পাদনা:

রেফারেন্সের জন্য, আমার পিএইচপি স্ক্রিপ্টটি যা এখানে দেয় তা এখানে:

[{"courseName": "Training Title","courseVersion": "1.01","courseZipFile": "101/files.zip"}]

এটি নির্বাচিত উত্তর হওয়া উচিত যদিও আপনি এটি আপডেট করতে চাইতে পারেন কারণ আলমোফায়ার তাদের পদ্ধতিগুলি কিছুটা আপডেট করেছে
স্নিম্যাক্স

10

দ্রুত 3

pod 'Alamofire', '~> 4.4'
pod 'SwiftyJSON'

File json format:
{
    "codeAd": {
        "dateExpire": "2017/12/11",
        "codeRemoveAd":"1231243134"
        }
}

import Alamofire
import SwiftyJSON
    private func downloadJson() {
        Alamofire.request("https://yourlinkdownloadjson/abc").responseJSON { response in
            debugPrint(response)

            if let json = response.data {
                let data = JSON(data: json)
                print("data\(data["codeAd"]["dateExpire"])")
                print("data\(data["codeAd"]["codeRemoveAd"])")
            }
        }
    }

2

আমি আমার অ্যাপ্লিকেশনটিতে ব্যবহার করেছি প্রতিক্রিয়া.সাল্ট.ভ্যালু (একটি আলামোফায়ার রেসপন্সজেসন বন্ধের অভ্যন্তরে) JSON ফর্ম্যাটে রূপান্তর করার একটি উপায় পেয়েছি।

আমি অ্যালামোফায়ার 3 এবং সুইফট 2.2 ব্যবহার করছি।

আমি যে কোডটি ব্যবহার করেছি তা এখানে:

    Alamofire.request(.POST, requestString,
                      parameters: parameters,
                      encoding: .JSON,
                      headers: headers).validate(statusCode: 200..<303)
                                       .validate(contentType: ["application/json"])
                                       .responseJSON { (response) in
        NSLog("response = \(response)")

        switch response.result {
        case .Success:
            guard let resultValue = response.result.value else {
                NSLog("Result value in response is nil")
                completionHandler(response: nil)
                return
            }

            let responseJSON = JSON(resultValue)

            // I do any processing this function needs to do with the JSON here

            // Here I call a completionHandler I wrote for the success case
        break
        case .Failure(let error):
            NSLog("Error result: \(error)")
            // Here I call a completionHandler I wrote for the failure case
            return
        }

2

আমি সাধারণত আইওএস-এ জেএসএন-কে ক্রিয়াকলাপ করতে বা ডিজায়ারাইজ করতে গ্লস লাইব্রেরি ব্যবহার করি । উদাহরণস্বরূপ, আমার কাছে জেএসএন রয়েছে যা দেখতে এটির মতো দেখাচ্ছে:

{"ABDC":[{"AB":"qwerty","CD":"uiop"}],[{"AB":"12334","CD":"asdf"}]}

প্রথম, আমি গ্লস স্ট্রাক্টে জেএসএন অ্যারে মডেল করি:

Struct Struct_Name: Decodable {
   let IJ: String?
   let KL: String?
   init?(json: JSON){
       self.IJ = "AB" <~~ json
       self.KL = "CD" <~~ json
   }
}

এবং তারপরে আলামোফায়ার প্রতিক্রিয়া জেএসএন-তে, আমি নিম্নলিখিত জিনিসটি করি:

Alamofire.request(url, method: .get, paramters: parametersURL).validate(contentType: ["application/json"]).responseJSON{ response in
 switch response.result{
   case .success (let data):
    guard let value = data as? JSON,
       let eventsArrayJSON = value["ABDC"] as? [JSON]
    else { fatalError() }
    let struct_name = [Struct_Name].from(jsonArray: eventsArrayJSON)//the JSON deserialization is done here, after this line you can do anything with your JSON
    for i in 0 ..< Int((struct_name?.count)!) {
       print((struct_name?[i].IJ!)!)
       print((struct_name?[i].KL!)!)
    }
    break

   case .failure(let error):
    print("Error: \(error)")
    break
 }
}

উপরের কোড থেকে আউটপুট:

qwerty
uiop
1234
asdf

2

সুইফট 5

class User: Decodable {

    var name: String
    var email: String
    var token: String

    enum CodingKeys: String, CodingKey {
        case name
        case email
        case token
    }

    public required init(from decoder: Decoder) throws {
        let container = try decoder.container(keyedBy: CodingKeys.self)
        self.name = try container.decode(String.self, forKey: .name)
        self.email = try container.decode(String.self, forKey: .email)
        self.token = try container.decode(String.self, forKey: .token)
    }
}

আলমোফায়ার এপিআই

    Alamofire.request("url.endpoint/path", method: .get, parameters: params, encoding: URLEncoding.queryString, headers: nil)
     .validate()
     .responseJSON { response in

        switch (response.result) {

            case .success( _):

            do {
                let users = try JSONDecoder().decode([User].self, from: response.data!)
                print(users)

            } catch let error as NSError {
                print("Failed to load: \(error.localizedDescription)")
            }

             case .failure(let error):
                print("Request error: \(error.localizedDescription)")
         }

1

এটি এক্সকোড 10.1 এবং সুইফট 4 দিয়ে তৈরি হয়েছিল

নিখুঁত সংমিশ্রণ "অ্যালামোফায়ার" (4.8.1) এবং "সুইফটিজেএসএন" (4.2.0)। প্রথমে আপনার দুটি পোড ইনস্টল করা উচিত

pod 'Alamofire' এবং pod 'SwiftyJSON'

JSON ফর্ম্যাটে সার্ভারের প্রতিক্রিয়া:

{
  "args": {}, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip;q=1.0, compress;q=0.5", 
    "Accept-Language": "en;q=1.0", 
    "Host": "httpbin.org", 
    "User-Agent": "AlamoFire TEST/1.0 (com.ighost.AlamoFire-TEST; build:1; iOS 12.1.0) Alamofire/4.8.1"
  }, 
  "origin": "200.55.140.181, 200.55.140.181", 
  "url": "https://httpbin.org/get"
}

এই ক্ষেত্রে আমি "হোস্ট" তথ্য মুদ্রণ করতে চাই: "হোস্ট": "httpbin.org"

Alamofire.request("https://httpbin.org/get").validate().responseJSON { response in
        switch response.result {
        case .success:
            print("Validation Successful)")

            if let json = response.data {
                do{
                    let data = try JSON(data: json)
                    let str = data["headers"]["Host"]
                    print("DATA PARSED: \(str)")
                }
                catch{
                print("JSON Error")
                }

            }
        case .failure(let error):
            print(error)
        }
    }

শান্ত এবং খুশি কোড রাখুন 😎


0

সুইফ্ট 5-এ আমরা পছন্দ করি, সমাপ্তির জন্য টাইপালিয়াস ব্যবহার করুন। টাইপিয়ালিয়াস কিছুই কেবল কোড পরিষ্কার করতে ব্যবহার করে না।

typealias response = (Bool,Any?)->()


static func postCall(_ url : String, param : [String : Any],completion : @escaping response){
    Alamofire.request(url, method: .post, parameters: param, encoding: JSONEncoding.default, headers: [:]).responseJSON { (response) in

        switch response.result {
           case .success(let JSON):
               print("\n\n Success value and JSON: \(JSON)")

           case .failure(let error):
               print("\n\n Request failed with error: \(error)")

           }
    }
}

-10
 pod 'Alamofire'
 pod 'SwiftyJSON'
 pod 'ReachabilitySwift'



import UIKit
import Alamofire
import SwiftyJSON
import SystemConfiguration

class WebServiceHelper: NSObject {

    typealias SuccessHandler = (JSON) -> Void
    typealias FailureHandler = (Error) -> Void

    // MARK: - Internet Connectivity

    class func isConnectedToNetwork() -> Bool {

        var zeroAddress = sockaddr_in()
        zeroAddress.sin_len = UInt8(MemoryLayout<sockaddr_in>.size)
        zeroAddress.sin_family = sa_family_t(AF_INET)

        guard let defaultRouteReachability = withUnsafePointer(to: &zeroAddress, {
            $0.withMemoryRebound(to: sockaddr.self, capacity: 1) {
                SCNetworkReachabilityCreateWithAddress(nil, $0)
            }
        }) else {
            return false
        }

        var flags: SCNetworkReachabilityFlags = []
        if !SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags) {
            return false
        }

        let isReachable = flags.contains(.reachable)
        let needsConnection = flags.contains(.connectionRequired)

        return (isReachable && !needsConnection)
    }

    // MARK: - Helper Methods

    class func getWebServiceCall(_ strURL : String, isShowLoader : Bool, success : @escaping SuccessHandler, failure : @escaping FailureHandler)
    {
        if isConnectedToNetwork() {

            print(strURL)

            if isShowLoader == true {

                AppDelegate.getDelegate().showLoader()
            }

            Alamofire.request(strURL).responseJSON { (resObj) -> Void in

                print(resObj)

                if resObj.result.isSuccess {
                    let resJson = JSON(resObj.result.value!)

                    if isShowLoader == true {
                        AppDelegate.getDelegate().dismissLoader()
                    }

                    debugPrint(resJson)
                    success(resJson)
                }
                if resObj.result.isFailure {
                    let error : Error = resObj.result.error!

                    if isShowLoader == true {
                        AppDelegate.getDelegate().dismissLoader()
                    }
                    debugPrint(error)
                    failure(error)
                }
            }
        }else {


            CommonMethods.showAlertWithError("", strMessage: Messages.NO_NETWORK, withTarget: (AppDelegate.getDelegate().window!.rootViewController)!)
        }
    }

    class func getWebServiceCall(_ strURL : String, params : [String : AnyObject]?, isShowLoader : Bool, success : @escaping SuccessHandler,  failure :@escaping FailureHandler){
        if isConnectedToNetwork() {

            if isShowLoader == true {
                AppDelegate.getDelegate().showLoader()
            }


            Alamofire.request(strURL, method: .get, parameters: params, encoding: JSONEncoding.default, headers: nil).responseJSON(completionHandler: {(resObj) -> Void in

                print(resObj)

                if resObj.result.isSuccess {
                    let resJson = JSON(resObj.result.value!)

                    if isShowLoader == true {
                        AppDelegate.getDelegate().dismissLoader()
                    }

                    success(resJson)
                }
                if resObj.result.isFailure {
                    let error : Error = resObj.result.error!

                    if isShowLoader == true {
                        AppDelegate.getDelegate().dismissLoader()
                    }

                    failure(error)
                }

            })
        }
    else {

            CommonMethods.showAlertWithError("", strMessage: Messages.NO_NETWORK, withTarget: (AppDelegate.getDelegate().window!.rootViewController)!)
    }

    }



    class func postWebServiceCall(_ strURL : String, params : [String : AnyObject]?, isShowLoader : Bool, success : @escaping SuccessHandler, failure :@escaping FailureHandler)
    {
        if isConnectedToNetwork()
        {

            if isShowLoader == true
            {
                AppDelegate.getDelegate().showLoader()
            }

            Alamofire.request(strURL, method: .post, parameters: params, encoding: JSONEncoding.default, headers: nil).responseJSON(completionHandler: {(resObj) -> Void in

                print(resObj)

                if resObj.result.isSuccess
                {
                    let resJson = JSON(resObj.result.value!)

                    if isShowLoader == true
                    {
                        AppDelegate.getDelegate().dismissLoader()
                    }

                    success(resJson)
                }

                if resObj.result.isFailure
                {
                    let error : Error = resObj.result.error!

                    if isShowLoader == true
                    {
                        AppDelegate.getDelegate().dismissLoader()
                    }

                    failure(error)
                }
            })
        }else {
            CommonMethods.showAlertWithError("", strMessage: Messages.NO_NETWORK, withTarget: (AppDelegate.getDelegate().window!.rootViewController)!)
        }
    }


    class func postWebServiceCallWithImage(_ strURL : String, image : UIImage!, strImageParam : String, params : [String : AnyObject]?, isShowLoader : Bool, success : @escaping SuccessHandler, failure : @escaping FailureHandler)
    {
        if isConnectedToNetwork() {
            if isShowLoader == true
            {
                AppDelegate.getDelegate().showLoader()
            }

            Alamofire.upload(
                multipartFormData: { multipartFormData in
                    if let imageData = UIImageJPEGRepresentation(image, 0.5) {
                        multipartFormData.append(imageData, withName: "Image.jpg")
                    }

                    for (key, value) in params! {

                        let data = value as! String

                        multipartFormData.append(data.data(using: String.Encoding.utf8)!, withName: key)
                        print(multipartFormData)
                    }
                },
                to: strURL,
                encodingCompletion: { encodingResult in
                    switch encodingResult {
                    case .success(let upload, _, _):
                        upload.responseJSON { response in
                            debugPrint(response)
                            //let datastring = String(data: response, encoding: String.Encoding.utf8)
                           // print(datastring)
                        }
                    case .failure(let encodingError):
                        print(encodingError)
                        if isShowLoader == true
                        {
                            AppDelegate.getDelegate().dismissLoader()
                        }

                        let error : NSError = encodingError as NSError
                        failure(error)
                    }

                    switch encodingResult {
                    case .success(let upload, _, _):
                        upload.responseJSON { (response) -> Void in

                            if response.result.isSuccess
                            {
                                let resJson = JSON(response.result.value!)

                                if isShowLoader == true
                                {
                                    AppDelegate.getDelegate().dismissLoader()
                                }

                                success(resJson)
                            }

                            if response.result.isFailure
                            {
                                let error : Error = response.result.error! as Error

                                if isShowLoader == true
                                {
                                    AppDelegate.getDelegate().dismissLoader()
                                }

                                failure(error)
                            }

                        }
                    case .failure(let encodingError):
                        if isShowLoader == true
                        {
                            AppDelegate.getDelegate().dismissLoader()
                        }

                        let error : NSError = encodingError as NSError
                        failure(error)
                    }
                }
            )
        }
        else
        {
            CommonMethods.showAlertWithError("", strMessage: Messages.NO_NETWORK, withTarget: (AppDelegate.getDelegate().window!.rootViewController)!)
        }
    }

}


==================================


Call Method


let aParams : [String : String] = [
                "ReqCode" : Constants.kRequestCodeLogin,
                ]

            WebServiceHelper.postWebServiceCall(Constants.BaseURL, params: aParams as [String : AnyObject]?, isShowLoader: true, success: { (responceObj) in


                if "\(responceObj["RespCode"])" != "1"
                {
                    let alert = UIAlertController(title: Constants.kAppName, message: "\(responceObj["RespMsg"])", preferredStyle: UIAlertControllerStyle.alert)
                    let OKAction = UIAlertAction(title: "OK", style: .default) { (action:UIAlertAction!) in
                    }
                    alert.addAction(OKAction)
                    self.present(alert, animated: true, completion: nil)
                }
                else
                {
                    let aParams : [String : String] = [
                        "Password" : self.dictAddLogin[AddLoginConstants.kPassword]!,
                        ]
                    CommonMethods.saveCustomObject(aParams as AnyObject?, key: Constants.kLoginData)

                }
                }, failure:
                { (error) in

                    CommonMethods.showAlertWithError(Constants.kALERT_TITLE_Error, strMessage: error.localizedDescription,withTarget: (AppDelegate.getDelegate().window!.rootViewController)!)
            })
        }

6
এই সমস্ত কোডটি কী তা একটি ব্যাখ্যা সহায়ক হবে।
পিটার.সওয়ালো 19
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.