调用webservice iOS

时间:2016-09-05 02:52:32

标签: ios swift web-services persistence nsuserdefaults

抱歉我的英文。 在调用webservice之后,我在实现数据持久性方面遇到了很多问题。 一切正常但我需要在其他方法中使用该数据。 如图所示,一旦在屏幕上收费数据,我想给用户提供使用它们或加载新数据的选项。但不是保存数据恢复Web服务。 我试图使用NSUserDefault,但都没有工作。 从非常感谢你,任何回复都是有帮助的。 此致!

的ViewController:

class ViewController: UIViewController {

let defaults = NSUserDefaults.standardUserDefaults()

@IBOutlet weak var myLabel2: UITextField!

override func viewDidLoad() {

    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    let newVC : SecondViewController = segue.destinationViewController as! SecondViewController
    let telefono = myLabel2.text!
    newVC.recibirString = telefono
}
@IBAction func mostrarAlgo(sender:AnyObject) {

 //something

}


}

SecondViewController:

class SecondViewController: UIViewController {

let defaults = NSUserDefaults.standardUserDefaults()

var tel: String = ""
@IBOutlet weak var myLabel1: UITextField!
@IBOutlet weak var myLabel3: UITextField!
@IBOutlet weak var myLabel4: UITextField!
@IBOutlet weak var myLabel5: UITextField!
@IBOutlet weak var myLabel6: UITextField!
@IBOutlet weak var myLabel7: UITextField!
@IBOutlet weak var myLabel8: UITextField!
var recibirString = String()

override func viewDidLoad() {
    super.viewDidLoad()

    myLabel1.text = recibirString

    performRequestAndUpdateUI2(myLabel1.text!)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


func performRequestAndUpdateUI2(tel:String) {
    WebService.llamarWebService (tel,completionHandler: { datos in
        guard datos.count == 5 else {

            self.myLabel8.text = ("El número ingresado no está registrado.")
            return
        }

        guard datos[0] as! String == "OK" else {
            print("not everything was OK")
            return
        }


        dispatch_async(dispatch_get_main_queue()) {

            self.myLabel3.text = datos[0] as? String
            self.myLabel4.text = datos[1] as? String
            self.myLabel5.text = datos[2] as? String
            self.myLabel6.text = datos[3] as? String
            self.myLabel7.text = datos[4] as? String
            self.myLabel8.text = ("Usted está registrado.")

           //need save this data
        }

    })
}


@IBAction func guardarDatos(sender: AnyObject) {

// do something
}
}

WebService的:

class WebService{

var telefono = ""


class func llamarWebService(telefono:String, completionHandler: (datos:NSArray)->()){

    let urlPath = "http://xxxxxxxxxxx.com.ar/xxxxxxxxxx/forwarder_number?phone=\(telefono)"
    let url = NSURL(string: urlPath)
    let session = NSURLSession.sharedSession()
    var arreglo:NSArray!
    let task = session.dataTaskWithURL(url!,completionHandler: {data,response,error -> Void in

        if (error != nil){
            print(error?.localizedDescription)
        }

        let nsdata: NSData = NSData(data: data!)

        arreglo = self.retornarDatos(nsdata)
        completionHandler(datos: arreglo)
    })

    task.resume()
}


class func retornarDatos(nsdata: NSData)-> Array<String>{

    let datos = NSString(data:nsdata,encoding: NSUTF8StringEncoding)
    let partes = datos?.componentsSeparatedByString(",")
    var arreglo : [String] = []

    for i in partes!{
        arreglo.append(i)
    }

    return arreglo
}

}

First View

Second View

0 个答案:

没有答案