2016-10-18 5 views
0
class func getHourlyWeather(searchString:String,completionHandler:(HourlyTemperatures)->()){ 


     var hourTemperatureArray = [AnyObject]() 


     let hourtempObj = HourlyTemperatures(hourlyTemperatureInF:34 , hourlyTime: 2, hourlyIcon: sunny, hourlyAmPm: 4) as AnyObject 

     hourTemperatureArray.append(hourtempObj) 

        } 
        completionHandler(hourTemperatureArray) 

       } catch let error as NSError { 
        print("error processing json data: \(error.localizedDescription)") 
       } 

      } 
      else{ 
       print("Error details:: \(error!.localizedDescription)") 
      } 

     }) 
     task.resume() 

    } 


//function call 

WeatherConnection.getHourlyWeather("AKhil",completionHandler: { (tempArray:HourlyTemperatures) ->() in 
}) 

Antwort

1

zu erwarten Wenn Sie das Array von [HourlyTemperatures] dann completionHandler Typ [HourlyTemperatures] nicht HourlyTemperatures, auch in Ihrer Methode übergeben möchten sollten Sie auch anrufen müssen die completionHandler im else Teil mit leeren Array. Es ist Batter, wenn Sie Array [HourlyTemperatures] anstelle von [AnyObject] erstellen. Ändern Sie den Code wie folgt.

class func getHourlyWeather(searchString:String,completionHandler:([HourlyTemperatures])->()){ 


    var hourTemperatureArray = [HourlyTemperatures]() 


    let hourtempObj = HourlyTemperatures(hourlyTemperatureInF:34 , hourlyTime: 2, hourlyIcon: sunny, hourlyAmPm: 4) as AnyObject 

    hourTemperatureArray.append(hourtempObj) 




      } catch let error as NSError { 
       print("error processing json data: \(error.localizedDescription)") 
      } 
      completionHandler(hourTemperatureArray) 
     } 
     else{ 
      completionHandler(hourTemperatureArray) 
      print("Error details:: \(error!.localizedDescription)") 
     } 

    }) 
    task.resume() 

} 
Verwandte Themen