2016-11-28 64 views
0

我試圖連接我的應用程序到MySQL服務,但是我總是收到以下錯誤:斯威夫特3 - 連接到MySQL

2016-11-28 18:27:32.987401 Fun iOS App[12725:473105] [] __nw_connection_get_connected_socket_block_invoke 2 Connection has no connected handler 
2016-11-28 18:27:32.988626 Fun iOS App[12725:473118] PAC stream failed with 
2016-11-28 18:27:32.990092 Fun iOS App[12725:473105] [] nw_proxy_resolver_create_parsed_array PAC evaluation error: kCFErrorDomainCFNetwork: 2 
fatal error: 'try!' expression unexpectedly raised an error: Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set." UserInfo={NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}: file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-800.0.58.6/src/swift/stdlib/public/core/ErrorType.swift, line 178 
(lldb) 

我試圖加載數據到一個名爲的tableView的tableview 。它也有一個標識符「細胞」

這是到目前爲止我的代碼單元:

@IBOutlet var tableView: UITableView! 
    var values:NSArray = [] 

    var count = 0; 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     get(); 
    } 

func get(){ 

     let url = URL(string: "http://www.helpmewastetime.com/service.php") 
     let data = NSData(contentsOf: url!) 

     values = try! JSONSerialization.jsonObject(with: data! as Data, options: JSONSerialization.ReadingOptions.mutableContainers) as! NSArray 

     tableView.reloadData() 
    } 

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

     let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) 

     let maindata = values[indexPath.row] 

     return cell; 

    } 

能否請你幫我解決這個錯誤,並解釋我在做什麼錯。

感謝

+0

實際的錯誤是「JSON文本沒有開始數組或對象和選項,以允許片段沒有設置。您的JSON文件可能無效或損壞。 – Koen

+0

你可以在這裏粘貼什麼是你的服務器響應? –

回答

0

不知道這是否與您的錯誤,但我強烈建議使用調度隊列下載您的數據:

DispatchQueue.global(qos: .userInitiated).async { 
    let url = URL(string: "http://www.helpmewastetime.com/service.php") 
    let data = NSData(contentsOf: url!) 
    values = try! JSONSerialization.jsonObject(with: data! as Data, options: JSONSerialization.ReadingOptions.mutableContainers) as! NSArray 
    DispatchQueue.main.async { 
     self.tableView.reloadData() 
    } 
} 

而且,你缺少的numberOfRowsInSection功能,沒有在你的手機上顯示任何東西;你應該這樣做:

let maindata = values[indexPath.row] 
cell.textLabel?.text = maindata.title // or whatever your data structure is 
+0

仍然遇到同樣的問題。對於第二部分我還沒有添加它(正在等待解決第一個錯誤) –

+0

好的。我推薦的是,你看看實際的錯誤信息('JSON文本沒有開始數組或對象和選項,以允許片段沒有設置),並搜索是否可以找到任何信息。 – Koen

+0

aight試圖找到解決方案謝謝 –