2016-02-05 69 views
0

我試圖從網站獲取JSON並在打印之前解析它。 我有一個名爲「JSONImport」的類,它應該處理來自服務器的JSON導入並打印它。 第二類應調用以啓動導入並打印JSON的內容。下載/解析後迅速打印json

下面的代碼是我迄今(我把它從另一個問題Downloading and parsing json in swift

所以這是我的「JSONImport.swift」:

var data = NSMutableData(); 

func startConnection(){ 
    let urlPath: String = "http://echo.jsontest.com/key/value"; 
    let url: NSURL = NSURL(string: urlPath)!; 
    let request: NSURLRequest = NSURLRequest(URL: url); 
    let connection: NSURLConnection = NSURLConnection(request: request, delegate: self, startImmediately: false)!; 
    connection.start(); 
} 

func connection(connection: NSURLConnection!, didReceiveData data: NSData!){ 
    self.data.appendData(data); 
} 

func connectionDidFinishLoading(connection: NSURLConnection!) { 
    // throwing an error on the line below (can't figure out where the error message is) 
    do{ 
    let jsonResult: NSDictionary = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary; 
     print(jsonResult);} 
    catch { 
     print("Something went wrong?"); 
    } 
} 

內的另一個類,我想通過打印JSON:

JSONImport.startConnection(); 

現在,我得到一個錯誤,因爲快速的要我一個參數添加到通話,使它看起來像:

JSONImport.startConnection(<#T##JSONImport#>); 

有人有一個想法,我應該把它作爲參數嗎? 我很困惑,因爲我沒有申報。

謝謝大家提前!

親切的問候,曼努埃爾

回答

0

startConnection()是一個實例方法,所以你需要實例化一個JSONImport調用它。

只有類型的方法可以這樣使用。所以它本質上是要求一個JSONImport的實例。

這裏是你應該怎麼做

let importer = JSONImport() 
importer.startConnection() 

,或者從類型的方法

let importer = JSONImport() 
JSONImport.startConnection(importer) 

您可以在此guide

+0

閱讀更多關於實例/類型的方法調用非常感謝你多:) – Manuel