我想用json結果填充UITable。我調用一個函數從服務器獲取json並將結果存儲在NSDictionary
中。我想能夠使用這個集合,然後填充一個表格。我遇到了一個問題,但是因爲func numberOfRowsInSection
我需要集合的數量,並且由於我的json結果在try/catch
內的另一個函數內,我似乎無法返回該值。使用回調從調用數據庫獲取JSON值
這就是我對我在ViewDidLoad()
調用函數:
func getSubjects() -> NSDictionary{
let myUrl = NSURL(string: "www.mydomain.com/script.php");
let request = NSMutableURLRequest(url:myUrl as! URL)
let user_id = UserDetails[0]
request.httpMethod = "POST";
let postString = "user_id=\(user_id)";
request.httpBody = postString.data(using: String.Encoding.utf8);
let task = URLSession.shared.dataTask(with: request as URLRequest){
data, response, error in
if error != nil {
print("error=\(error)")
return
}
var err: NSError?
do {
let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary
if let parseJSON = json {
let resultValue: NSDictionary = parseJSON["subjects"] as! NSDictionary
}
} catch let error as NSError {
err = error
print(err!);
}
}
task.resume();
}
如果我打印resultValue
我得到了我所需要的,在這個例子是:
{
1 = (
Maths,
Lecture
);
2 = (
Science,
Lecture
);
3 = (
English,
Seminar
);
}
但令人困惑的是,我該如何去回覆這個值呢?和哪裏?我將如何在桌上執行它?如果我嘗試返回resultValue
當我解析JSON
我得到的錯誤,這是unexpected non-void return in void function
,如果我嘗試在函數的最後返回的值,我得到一個unresolved identifier error
我覺得我錯誤地實現這一點。我已經檢查了很多關於這個的教程,似乎沒有人用POST JSON
填充表格,所以我不知道如何去返回值或正確的實現方法。任何幫助將不勝感激!
無關爲什麼你在你的Swift代碼中使用Objective-C類型?使用Swift字典代替'NSDictionary'等。 – rmaddy
注意點,謝謝 – Nouman