2016-02-05 4 views
0

Я пытаюсь получить JSON с веб-сайта и разобрать его перед его печатью. У меня есть класс под названием «JSONImport», который должен обрабатывать JSON Import с сервера и печатать его. Второй класс должен позвонить, чтобы начать импорт и распечатать содержимое JSON.Печать json in swift после загрузки/разбора

Следующий код, что я до сих пор (я взял его с другого вопроса 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