2016-07-29 13 views
1
import UIKit 

class ViewController: UIViewController { 

@IBOutlet weak var cityNameTextField: UITextField! 

@IBOutlet weak var cityNameLabel: UILabel! 

@IBOutlet weak var cityTempLabel: UILabel! 

@IBAction func getDataButtonClicked(sender: AnyObject) { 

    getWeatherData("http://api.openweathermap.org/data/2.5/weather?q=\(cityNameTextField.text)&APPID=6de03a1d1554874e7594a89fad719dd0") 
} 


override func viewDidLoad() { 
    super.viewDidLoad() 
    getWeatherData("http://api.openweathermap.org/data/2.5/weather?q=London&APPID=6de03a1d1554874e7594a89fad719dd0") 
    // 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.   
} 

func getWeatherData(urlString: String) { 
    let url = NSURL(string: urlString) 

    let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in 
     dispatch_async(dispatch_get_main_queue(), { 
      self.setLabels(data!) 
     }) 
    } 
    task.resume()   
} 


var jsonData: AnyObject? 

func setLabels(weatherData: NSData) { 


    do { 

     self.jsonData = try NSJSONSerialization.JSONObjectWithData(weatherData, options: []) as! NSDictionary 

    } catch { 
     //error handle here 

    } 

    if let name = jsonData!["name"] as? String { 

     cityTempLabel.text = "\(name)" 

    } 



    if let main = jsonData!["main"] as? NSDictionary { 
     if let temp = main["temp"] as? Double { 
      cityTempLabel.text = String(format: "%.1f", temp) 
     } 
    } 
} 

}; 

Gestern hatte ich die App laufen und heute Morgen habe ich gerade neue Fehlermeldungen bekommen, die nicht einmal den Code kompiliert werden können. Sie sagen "Missing" [email protected] "Start Image" und "Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftcode". Danke im Voraus.Xcode Swift 2 Wetter App Probleme

+0

Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc fehlgeschlagen mit Exitcode 1 –

+0

Versuchen Sie, Ihr Projekt zu bereinigen. Haben Sie auch diesen Link überprüft - http://StackOverflow.com/questions/30848208/new-warnings-in-ios-9 –

Antwort

0

Sie brauchen etwas zu Ihrer info.plist Datei hinzuzufügen:

enter image description here

Es ist, weil der URL-Link Sie versuchen Daten zu erhalten, von nicht gesicherte Verbindung ist, so dass dieser Zusatz zu Ihnen info.plist ermöglicht Ihnen den Zugriff auf diesen Link. Gehen Sie einfach zu Ihnen info.plist und klicken Sie mit der rechten Maustaste und wählen Sie Zeile hinzufügen, dann fügen Sie genau das, was Sie im Bild oben sehen.

Entfernen Sie auch die getWeatherData Funktion von der viewDidLoad Methode, wie Sie es nicht brauchen, wie Sie es nennen, wenn Sie Ihre Taste drücken.

Auch habe ich bemerkt, eine Ihrer Etiketten nicht richtig in Ihrer setLabels Funktion gesetzt, da sie beide versuchen, das cityTempLabel Etikett zu setzen, so die anderen cityNameLabel aktualisieren.

Bauen und laufen und es sollte alles funktionieren.

Verwandte Themen