2017-07-13 18 views
0

このアプリケーションを実行するとクラッシュするよりも、キャッチされない例外 'NSInvalidArgumentException'、reasonNSCFDictionaryの長さによってアプリケーションが終了するというエラーが表示されます:認識できないセレクタがインスタンス0x60000006df80 'ビルド中にエラーこのアプリケーションを使用していないことで天気を条件を見つけることを試みるが、私は、このアプリケーションを実行すると、それは認識されていないセレクタが問題0x60000006df80'.Soインスタンスに送信エラーがFUNCにある示しsearchBarSearchButtonClicked .I(_検索バー:UISearchBar)でこの行だから私を助けてください。私は次の部分に行きます。キャッチされていない例外によるアプリケーションの終了

 @IBOutlet weak var searchBar: UISearchBar! 
     @IBOutlet weak var cityLbl: UILabel! 
     @IBOutlet weak var conditionLbl: UILabel! 
     @IBOutlet weak var degreeLbl: UILabel! 
     @IBOutlet weak var imgView: UIImageView! 
     var degree: Int! 
     var condition:String! 
     var imgURL:String! 
     var city:String! 
     var exists: Bool = true 
     override func viewDidLoad() { 
      super.viewDidLoad() 
      searchBar.delegate = self 
     } 

     func searchBarSearchButtonClicked (_ searchBar: UISearchBar) 
     { 
     let urlRequest = URLRequest(url: URL(string: "https://api.apixu.com/v1/current.json?key=04e2f1e6e7db4897aee91005171207&q=\(searchBar.text!.replacingOccurrences(of:" ", with: "%20"))")!) 
      let task = URLSession.shared.dataTask(with: urlRequest) { (data, responce, error) in 
       if error == nil{ 
        do{ 
         let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! [String: AnyObject] 
         if let current = json["current"] as? [String:AnyObject]{ 
          if let temp = current["temp_c"] as? Int{ 
          self.degree = temp 
          } 
          if let condition = current["condition"] as? [String:AnyObject]{ 
          self.condition = condition["text"] as! String 
          let icon = condition["icon"] as! String 
          self.imgURL = "http:\(icon)" 
          } 
         } 
         if let location = json["location"] as? [String:AnyObject]{ 
          self.city = location["name"] as! String 

         } 
         if let _ = json["error"] { 
          self.exists = false 
         } 
         DispatchQueue.main.async { 
          if self.exists{ 
           self.degreeLbl.isHidden = false 
           self.cityLbl.isHidden = false 
           self.conditionLbl.isHidden = false 
           self.degreeLbl.text = "\(self.degree.description)°" 
           self.cityLbl.text = self.city 
           self.conditionLbl.text = self.condition 
          }else{ 
            self.degreeLbl.isHidden = true 
            self.cityLbl.isHidden = true 
            self.conditionLbl.isHidden = true 
            self.cityLbl.text = "City does not Match" 
            self.exists = true 
            self.imgView.downloadImage(from: self.imgURL) 
          } 
         } 

        } catch let jsonError 
         { 
         print(jsonError.localizedDescription) 
         } 


        } 
       } 
       task.resume() 
     } 
    } 

答えて

0

のInfo.plistでメインストーリーボードファイルベース名の名前が、それは空ではありませんメインである必要があり

関連する問題