2016-11-26 2 views
-1
func getLastVideos(){ 

    Alamofire.request(url: urlString, method: .GET, parameters: ["part":"snippet","maxResults":"30","key":API_KEY, "playlistId": playlist_Id], encoding: URLEncoding.default, headers: nil).responseJSON { (response) in 



     if let jsonResult = response.result.value{ 

      var videosArray = [LastVideos]() 

      for video in jsonResult["items"] as! NSArray{ 

       let lastVideo = LastVideos() 

       lastVideo.title = video.valueForKeyPath("snippet.title") as! String 
       lastVideo._description = video.valueForKeyPath("snippet.description") as! String 
       lastVideo.id = video.valueForKeyPath("snippet.resourceId.videoId") as! String 

       if video.valueForKeyPath("snippet.thumbnails.maxres.url") != nil { 
        lastVideo.thumbnailUrl = video.valueForKeyPath("snippet.thumbnails.maxres.url") as! String 
       }else if video.valueForKeyPath("snippet.thumbnails.standard.url") != nil { 
        lastVideo.thumbnailUrl = video.valueForKeyPath("snippet.thumbnails.standard.url") as! String 
       }else if video.valueForKeyPath("snippet.thumbnails.high.url") != nil { 
        lastVideo.thumbnailUrl = video.valueForKeyPath("snippet.thumbnails.high.url") as! String 
       }else if video.valueForKeyPath("snippet.thumbnails.medium.url") != nil { 
        lastVideo.thumbnailUrl = video.valueForKeyPath("snippet.thumbnails.medium.url") as! String 
       }else{ 
        lastVideo.thumbnailUrl = video.valueForKeyPath("snippet.thumbnails.default.url") as! String 
       } 

       videosArray.append(lastVideo) 

      } 

      self.lastVideos = videosArray 


      if self.delegate != nil { 
       self.delegate.lastVideosAreReady() 

      } 





     } 
    } 

Ich kann nicht scheinen, diesen Code zu bekommen mit schnellen 3 und alamofire 4.0 zu arbeiten. Ich bekomme immer den Fehler extra argument in call. Sobald ich diesen Fehler behebe, erhalte ich den Fehler: type any has no subscript members in the if let statement.Fehler von schnellen 2 bis 3 rascher Umwandlung mit Alamofire mit der Suche

Jede Hilfe wird sehr geschätzt.

+0

sind Sie in der Lage, das Problem zu lösen? –

+0

Nein, ich war nicht, es hat nicht funktioniert –

+0

Überprüfen Sie meine aktualisierte Antwort. –

Antwort

0

Versuchen:

if let jsonResult = response.result.value as? [String:AnyObject] 

diese Codezeile verwenden innen Alamofire Verschluss:

switch response.result { 
case .Success(let JSON): 
    print("Success with JSON: \(JSON)") 
    //rest of code 

case .Failure(let error): 
    print("Error with Description: \(error.localizedDescription)") 
} 
0

wie folgt aus?

let url = "www.mywebsite.net/api/" 
let params = ["part":"snippet", "maxResults":"30", "key":API_KEY, "playlistId": playlist_Id] 
Alamofire.request(.GET, url, parameters: params).responseJSON { (responseObject) -> Void in 
    guard let object = response.result.value else { 
     return 
    } 
    let json = JSON(object) // with SwiftyJSON 
} 
+0

Immer noch der gleiche Fehler –

0

Verwenden Sie für Swift 3 den folgenden Code. Es funktioniert sehr gut in allen meinen Projekten ..

// Parameter

let paramDic : NSMutableDictionary = [ 
      "key1" : "value1", 
      "key2" : "value2", 
     ] 

let urlString = "www.mywebsite.net/api/" 
let url : URL = URL.init(string: urlString)! 
var request = URLRequest(url: url) 
request.httpMethod = "GET" 

//Setting header 

request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type") 
request.setValue("application/json", forHTTPHeaderField: "Accept") 

//Setting parameters 

request.httpBody = try! JSONSerialization.data(withJSONObject: paramDic!, options: []) 



if paramDic != nil { 
      request.httpBody = try! JSONSerialization.data(withJSONObject: paramDic!, options: []) 
     } 

alamoFireManager!.request(request as URLRequestConvertible).responseJSON { 
      response in 
      switch response.result { 
      case .failure(let error): 
       print("\(urlString) failure response -> \n NSHTTPURLResponse ->\(response.response) \n \(error)") 
      case .success : 
       print("\(urlString) success response -> \n NSHTTPURLResponse ->\(response.response) \n Data -> \(response.result.value as? NSDictionary)") 
      } 
     } 
Verwandte Themen