2015-02-11 23 views
0

當我創建輸出的數據,你可以看到在println(數據),我得到的數據。我試圖從Web服務獲取數據。但是,爲什麼致命錯誤發生時解析數據到JSON.Any幫助???編碼幫助&建議表示讚賞。發現零,而upwrapping一個可選值

import Foundation 

protocol AuctionAPIProtocol{ 
    func didReceiveAPIResults(results: NSDictionary) 
} 

class AuctionAPI{ 

var delegate: AuctionAPIProtocol 

init(delegate: AuctionAPIProtocol){ 
    self.delegate=delegate 
} 

func get(path:String){ 
    let url = NSURL(string:path) 
    let session = NSURLSession.sharedSession() 
    let task = session.dataTaskWithURL(url!, completionHandler: {data, response, error -> Void in 
     println("Task Completed!!!") 
     if(error != nil){ 
      println(error.localizedDescription) 
     } 
     var err: NSError? 
     println(data) 
     var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary 
     //var jsonResult=JSON(data!) 
     if(err != nil) { 
      // If there is an error parsing JSON, print it to the console 
      println("JSON Error \(err!.localizedDescription)") 
     } 
     let results: NSArray = jsonResult["body"] as NSArray 
     self.delegate.didReceiveAPIResults(jsonResult) 
    }) 
    task.resume() 
} 

func searchAuctionLatestFor(){ 
    let urlPath = "http://xxxxxxxxxxxxx/ws/m/automobile/global/latest/search" 
    get(urlPath) 
} 

//TODO detail func 
//func latestDetail(collectionId: Int){ 
// get("xxxxxxxxxxxxxxxx") 
//} 
} 
+0

您是否嘗試過使用JSON或使用Advanced Rest Client從服務器獲取數據?高級休息客戶端是鉻的擴展,您可以安裝和調試休息API – Miknash 2015-02-11 09:50:19

回答

0

如果JSON分析已經展開了jsonResult之前失敗的錯誤你是不是檢查。嘗試以下功能並查看記錄的錯誤。

func get(path:String){ 
    let url = NSURL(string:path) 
    let session = NSURLSession.sharedSession() 
    let task = session.dataTaskWithURL(url!, completionHandler: {data, response, error -> Void in 
     if(error != nil){ 
      println(error.localizedDescription) 
     } 
     var err: NSError? 
     let jsonResult: AnyObject? = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) 
     if(err != nil) { 
      println("JSON Error \(err!.localizedDescription)") 
     } 
     else { 
      if let jsonData = jsonResult as? [String:AnyObject] { 
       let results: NSArray = jsonData["body"] as NSArray 
       self.delegate.didReceiveAPIResults(jsonData) 
      } 
     } 

    }) 
    task.resume() 
} 
+0

我cant.It顯示以下錯誤「http://puu.sh/fLFGf/6dada92a88.png」 – 2015-02-11 08:54:18

+0

使用jsonData而不是jsonResult在該行 – rakeshbs 2015-02-11 08:55:13

+0

控制檯日誌說....任務完成! JSON錯誤操作無法完成。 (Cocoa錯誤3840.) – 2015-02-11 08:57:47

相關問題