2016-07-29 3 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) 
     } 
    } 
} 

}; 

어제 저는 응용 프로그램을 실행했고 오늘 아침에 코드를 컴파일 할 수없는 새로운 오류 메시지가 나타났습니다. 그들은 'Missing'이라고 말합니다. [email protected] "launch image"및 "Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftcode". 미리 감사드립니다.Xcode Swift 2 날씨 응용 프로그램 문제

+0

명령/응용 프로그램/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc가 종료 코드 1과 함께 실패했습니다. –

+0

프로젝트를 청소하십시오. 또한이 링크를 확인 했습니까? http://stackoverflow.com/questions/30848208/new-warnings-in-ios-9 –

답변

0

당신은 당신의 Info.plist 파일에 무언가를 추가해야

enter image description here

그것은 당신이 데이터를 얻으려고 노력하고있는 URL 링크가 그래서 당신 info.plist이 추가, 보안 연결되지 않기 때문에이다 해당 링크에 액세스 할 수 있습니다. info.plist으로 이동하여 마우스 오른쪽 버튼을 클릭하고 행 추가를 선택한 다음 위 이미지에 표시된 내용을 정확히 추가하십시오.

또한 getWeatherData 함수는 viewDidLoad 메서드에서 제거 할 필요가 없으므로 단추를 누를 때 호출해야합니다.

또한, 나는 레이블 중 하나가 그들이 모두 cityTempLabel 라벨을 설정하려고로, 당신의 setLabels 기능을 올바르게 설정, 그래서 cityNameLabel로 다른 하나를 업데이트하지 않습니다 나타났습니다.

빌드하고 실행하면 정상적으로 작동합니다.