需要帮助从mySQL数据库下载和显示表中的数据。 Swift 2 Beta 5

时间:2015-08-28 19:55:16

标签: ios mysql swift

Swift 2 Xcode 7 beta 5.我在一个视图应用程序中工作,添加了一个表视图。我试图从本地主机mySQL数据库下载数据并在表视图中显示它。我能够下载数据并打印出来,但是当我尝试在section函数中使用numberOfRows来返回下载的数组的计数时,我得到了一些奇怪的结果。这是我的整个视图控制器的代码。

import UIKit

class InvoiceListViewController: UIViewController, UITableViewDelegate{

var currentInvoices = [NSDictionary]()

// Table View Outlet
@IBOutlet weak var tableView: UITableView!

override func viewDidLoad() {
    super.viewDidLoad()

    // Set up the connection.
    let url = NSURL(string: "http://localhost:8888/service.php")!

    let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) -> Void in

        if let invoiceUrlData = data {

            do {

                let invoiceData = try NSJSONSerialization.JSONObjectWithData(invoiceUrlData, options: NSJSONReadingOptions.MutableContainers) as! [NSDictionary]

                self.currentInvoices = invoiceData
                /* 
                dispatch_async(dispatch_get_main_queue(), { () -> Void in
                 self.tableView.reloadData()
                 })
                */
                dispatch_async(dispatch_get_main_queue()) {

                    self.tableView.reloadData()

                }


                print(self.currentInvoices.count)
                print(self.currentInvoices)
            }

            catch {

                print("JSON Serialization Failed")

            }

        }

    }

    task.resume()

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


// The function that lists the number of rows in table view.
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    print(currentInvoices.count)
    return currentInvoices.count
}

//
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCellWithIdentifier("invoiceCell", forIndexPath: indexPath)

    return cell
 }


}

如果我打印到控制台currentInvoices.count,我会看到几个零,然后显示正确的数字。然后tableView中不会显示任何内容。

 0
 0
 0
 0
 2

下载的内容确实有一些变量可能是" null"在某些条目,但我能够打印到控制台,看到整个数据库已下载。我认为我在可选检查方面缺少一些安全性,也许这就是导致问题的原因?

0 个答案:

没有答案