2016-03-20 20 views
-4

Ich habe eine Anmeldeseite mit diesem Tutorial erstellt:Anmeldeseite funktioniert nicht swift 2

https://dipinkrishna.com/blog/2015/07/ios-login-signup-screen-tutorial-swift-2-xcode-7-ios-9-json/

Änderungen auf mein Bedürfnis mit Web-Service auf Tutorial getestet arbeiten gut, aber wen ich versuche, mein Web-Service loggt sich nicht ein, aber in xcode log habe ich Daten, die ich möchte. Ich möchte sie auf einer anderen Seite zeigen, die eine andere Klasse verwendet.

Anmelden View-Controller-Codes:

do { 
      let post:NSString = "username=\(username)&password=\(password)" 

      NSLog("PostData: %@",post); 

      let url:NSURL = NSURL(string:"http://www.k-pay.ir/home/loginpost")! 

      let postData:NSData = post.dataUsingEncoding(NSASCIIStringEncoding)! 

      let postLength:NSString = String(postData.length) 

      let request:NSMutableURLRequest = NSMutableURLRequest(URL: url) 
      request.HTTPMethod = "POST" 
      request.HTTPBody = postData 
      request.setValue(postLength as String, forHTTPHeaderField: "Content-Length") 
      request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") 
      request.setValue("application/json", forHTTPHeaderField: "Accept") 


      var reponseError: NSError? 
      var response: NSURLResponse? 

      var urlData: NSData? 
      do { 
       urlData = try NSURLConnection.sendSynchronousRequest(request, returningResponse:&response) 
      } catch let error as NSError { 
       reponseError = error 
       urlData = nil 
      } 

      if (urlData != nil) { 
       let res = response as! NSHTTPURLResponse!; 

       NSLog("Response code: %ld", res.statusCode); 

       if (res.statusCode >= 200 && res.statusCode < 300) 
       { 
        let responseData:NSString = NSString(data:urlData!, encoding:NSUTF8StringEncoding)! 

        NSLog("Response ==> %@", responseData); 

        //var error: NSError? 

        let jsonData:NSDictionary = try NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers) as! NSDictionary 



        let buildingid: NSString = jsonData.valueForKey("buildingid") as! NSString 
        let buildingname: NSString = jsonData.valueForKey("buildingname") as! NSString 
        let unitOwnerName: NSString = jsonData.valueForKey("unitOwnerName") as! NSString 
        let unitMostajerName: NSString = jsonData.valueForKey("unitMostajerName") as! NSString 
        let SakenMoteqayyer: NSString = jsonData.valueForKey("SakenMoteqayyer") as! NSString 
        let SakenSabet: NSString = jsonData.valueForKey("SakenSabet") as! NSString 
        let BedehiMalek = (jsonData["BedehiMalek"] as? NSString) ?? 0 
        let Tedad: NSString = jsonData.valueForKey("Tedad") as! NSString 
        let Metragh: NSString = jsonData.valueForKey("Metragh") as! NSString 
        let unitId: NSString = jsonData.valueForKey("unitId") as! NSString 

Und Code I in Wohnansicht Controller schrieb:

override func viewDidAppear(animated: Bool) { 
    super.viewDidAppear(true) 

    let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults() 
    let isLoggedIn:Int = prefs.integerForKey("ISLOGGEDIN") as Int 
    if (isLoggedIn != 1) { 
     self.performSegueWithIdentifier("goto_login", sender: self) 
    }else { 

     Tedad.text = "\(Tedad)" 
     Metragh.text = "\(Metragh)" 
     buildingid.text = "\(buildingid)" 
     buildingname.text = "\(buildingname)" 
     unitId.text = "\(unitId)" 
     unitMostajerName.text = "\(unitMostajerName)" 
     unitOwnerName.text = "\(unitOwnerName)" 
     SakenMoteqayyer.text = "\(SakenMoteqayyer)" 
     SakenSabet.text = "\(SakenSabet)" 
     BedehiMalek.text = "\(BedehiMalek)" 

    } 

} 

} ich einige Labels in meiner Heimat-View-Controller angeschlossen haben.

Warum Anmeldung funktioniert nicht und wie kann ich Daten in einer anderen Klasse platzieren?

------ ------ UPDATE Added dieser Code Zeichen gut, aber nicht gut Daten in Etiketten zeigt:

let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults() 
        prefs.setObject(buildingid, forKey: "buildingid") 
        prefs.setInteger(1, forKey: "ISLOGGEDIN") 
        prefs.synchronize() 

        prefs.setObject(buildingname, forKey: "buildingname") 
        prefs.setInteger(1, forKey: "ISLOGGEDIN") 
        prefs.synchronize() 

        prefs.setObject(unitOwnerName, forKey: "unitOwnerName") 
        prefs.setInteger(1, forKey: "ISLOGGEDIN") 
        prefs.synchronize() 

        prefs.setObject(unitMostajerName, forKey: "unitMostajerName") 
        prefs.setInteger(1, forKey: "ISLOGGEDIN") 
        prefs.synchronize() 

        prefs.setObject(SakenMoteqayyer, forKey: "SakenMoteqayyer") 
        prefs.setInteger(1, forKey: "ISLOGGEDIN") 
        prefs.synchronize() 

        prefs.setObject(SakenSabet, forKey: "SakenSabet") 
        prefs.setInteger(1, forKey: "ISLOGGEDIN") 
        prefs.synchronize() 

        prefs.setObject(BedehiMalek, forKey: "BedehiMalek") 
        prefs.setInteger(1, forKey: "ISLOGGEDIN") 
        prefs.synchronize() 

        prefs.setObject(Tedad, forKey: "Tedad") 
        prefs.setInteger(1, forKey: "ISLOGGEDIN") 
        prefs.synchronize() 

        prefs.setObject(Metragh, forKey: "Metragh") 
        prefs.setInteger(1, forKey: "ISLOGGEDIN") 
        prefs.synchronize() 

        prefs.setObject(unitId, forKey: "unitId") 
        prefs.setInteger(1, forKey: "ISLOGGEDIN") 
        prefs.synchronize() 


        self.dismissViewControllerAnimated(true, completion: nil) 

Labels sind wie this gezeigt

+0

Dies ist eine unglaublich schwierige Frage zu den gegebenen Informationen zu beantworten. Bitte zeigen Sie den Code, mit dem Sie arbeiten, damit wir Ihnen zeigen können, wo Sie falsch liegen. – MikeG

+0

@MikeG Code hinzugefügt – VahidGR

+0

Was meinst du mit ["funktioniert nicht"] (http://importblogkit.com/2015/07/does-not-work/)? – nhgrif

Antwort

0

gelöstes Problem indem ich den Code unten in meinem Home-View-Controller ersetze.

override func viewDidAppear(animated: Bool) { 
    super.viewDidAppear(true) 

    let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults() 
    let isLoggedIn:Int = prefs.integerForKey("ISLOGGEDIN") as Int 
    if (isLoggedIn != 1) { 
     self.performSegueWithIdentifier("goto_login", sender: self) 
    }else { 
     self.Tedad.text = prefs.valueForKey("Tedad") as? String 
     self.Metragh.text = prefs.valueForKey("Metragh") as? String 
     self.buildingid.text = prefs.valueForKey("buildingid") as? String 
     self.buildingname.text = prefs.valueForKey("buildingname") as? String 
     self.unitId.text = prefs.valueForKey("unitId") as? String 
     self.unitMostajerName.text = prefs.valueForKey("unitMostajerName") as? String 
     self.BedehiMalek.text = prefs.valueForKey("BedehiMalek") as? String 
     self.unitOwnerName.text = prefs.valueForKey("unitOwnerName") as? String 
     self.SakenMoteqayyer.text = prefs.valueForKey("SakenMoteqayyer") as? String 
     self.SakenSabet.text = prefs.valueForKey("SakenSabet") as? String 
    } 

} 
Verwandte Themen