Ios 试图从解析在UITableView上显示数据

Ios 试图从解析在UITableView上显示数据,ios,swift,parse-platform,Ios,Swift,Parse Platform,我试图在UITableView上显示parse中的数据,但它只显示一个空白的UITableView(没有显示数据) 我有一个parse的大学课程,还有一个UniversityYenRolledName列名 这是密码 import UIKit import Parse import ParseUI class viewUniversityList: PFQueryTableViewController { @IBOutlet var uiTableView: UITableView! ove

我试图在
UITableView
上显示parse中的数据,但它只显示一个空白的
UITableView
(没有显示数据)

我有一个parse的大学课程,还有一个UniversityYenRolledName列名

这是密码

import UIKit
import Parse
import ParseUI
class viewUniversityList: PFQueryTableViewController {


@IBOutlet var uiTableView: UITableView!

override init(style: UITableViewStyle, className: String!){
    super.init(style: style, className: className)
}

required init(coder aDecoder: NSCoder){
    super.init(coder: aDecoder)

    self.parseClassName = "University"
    self.textKey = "universityEnrolledName"
    self.pullToRefreshEnabled = true
    self.paginationEnabled = false

}


override func queryForTable() -> PFQuery {
    var query = PFQuery(className: "University")
    query.orderByAscending("universityEnrolledName")
    return query;
}


override func viewDidLoad() {
    super.viewDidLoad()

    uiTableView.delegate = self
    uiTableView.dataSource = self

    // Uncomment the following line to preserve selection between presentations
    // self.clearsSelectionOnViewWillAppear = false

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem()
}

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

// MARK: - Table view data source

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    // #warning Potentially incomplete method implementation.
    // Return the number of sections.
    return 0
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete method implementation.
    // Return the number of rows in the section.
    return 0
}


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell {

    var cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! PFTableViewCell!
    if cell == nil {
        cell = PFTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
    }

    if let universityEnrolledName = object?["universityEnrolledName"] as? String{
        cell?.textLabel?.text = universityEnrolledName
    }

    if let classEnrolledName = object?["classEnrolledName"] as? String{
        cell?.detailTextLabel?.text = classEnrolledName
    }


    return cell;
}


/*
// Override to support conditional editing of the table view.
override func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
    // Return NO if you do not want the specified item to be editable.
    return true
}
*/

/*
// Override to support editing the table view.
override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
    if editingStyle == .Delete {
        // Delete the row from the data source
        tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
    } else if editingStyle == .Insert {
        // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
    }    
}
*/

/*
// Override to support rearranging the table view.
override func tableView(tableView: UITableView, moveRowAtIndexPath fromIndexPath: NSIndexPath, toIndexPath: NSIndexPath) {

}
*/

/*
// Override to support conditional rearranging of the table view.
override func tableView(tableView: UITableView, canMoveRowAtIndexPath indexPath: NSIndexPath) -> Bool {
    // Return NO if you do not want the item to be re-orderable.
    return true
}
*/

/*
// MARK: - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}


 */

}
有人对显示大学课堂上的UniversityEnrolled名称数据(来自Parse)有什么建议吗?谢谢

这里

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete method implementation.
    // Return the number of rows in the section.
    return 0
}
此方法用于在tableview中显示数字行。因为您返回0,这意味着您告诉表视图您的表应该有零行

同样地

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    // #warning Potentially incomplete method implementation.
    // Return the number of sections.
    return 0
}
默认情况下,表视图只有一个部分,如果显式提供某些值,它将被覆盖

所以在这两种情况下,都应该返回大于零的正数

下面的方法应返回UITableViewCell,但您编写了PFTableViewCell。所以改变它

  override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> UITableViewCell {


    var cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! PFTableViewCell!
    if cell == nil {
        cell = PFTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
    }

    if let universityEnrolledName = object?["universityEnrolledName"] as? String{
        cell?.textLabel?.text = universityEnrolledName
    }

    if let classEnrolledName = object?["classEnrolledName"] as? String{
        cell?.detailTextLabel?.text = classEnrolledName
    }
    return cell;
}
请参阅:


这可能会对您有所帮助:)

我不写swift,所以请原谅任何语法问题,但我希望您需要类似以下内容:

import UIKit
import Parse
import ParseUI

class viewUniversityList: PFQueryTableViewController {


@IBOutlet var uiTableView: UITableView!

override init(style: UITableViewStyle, className: String!){
    super.init(style: style, className: className)
}

required init(coder aDecoder: NSCoder){
    super.init(coder: aDecoder)

    self.parseClassName = "University"
    self.textKey = "universityEnrolledName"
    self.pullToRefreshEnabled = true
    self.paginationEnabled = false
}

override func viewDidLoad() {
    super.viewDidLoad()

    uiTableView.delegate = self
    uiTableView.dataSource = self

    // Uncomment the following line to preserve selection between presentations
    // self.clearsSelectionOnViewWillAppear = false

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem()
}

override func queryForTable() -> PFQuery {
    var query = PFQuery(className: "University")
    query.orderByAscending("universityEnrolledName")
    return query;
}

override func textKey() -> NSString {
    return "universityEnrolledName"
}

// MARK: - Table view data source

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell {

    var cell = super.tableView(tableView, dequeueReusableCellWithIdentifier:indexPath, object:object) as! PFTableViewCell!

    if let classEnrolledName = object?["classEnrolledName"] as? String{
        cell?.detailTextLabel?.text = classEnrolledName
    }

    return cell;
}

numberOfSectionsInTableView
tableView:numberofrowsinssection
应该返回一些正值。在你的情况下,两个都返回
0
你可能不应该覆盖它们…@VivekMolkar,谢谢,我已经尝试过了,但是你还有其他想法吗?不幸的是,这不起作用,因为如果我在numberOfSectionInTableView方法和TableView方法中返回一个正数,那么我将得到一个NSException类型的未捕获异常终止error@Wain,您认为我不应该覆盖哪些方法?谢谢你还有什么别的想法吗???不幸的是,这不起作用,如果我在numberOfSectionInTableView方法和TableView方法中返回一个正数,那么我会得到一个类型为NSException ErrorThank@Amit89的未捕获异常终止,但是还有其他想法吗?不幸的是,这不起作用,如果我在numberOfSectionInTableView方法和TableView方法中返回一个正数,那么我会得到一个NSException Error类型的未捕获异常终止。另外,如果我将其保留为零,那么只会显示一个空白的UITableView删除numberOfSectionsInTableView()方法,如果您想要一个单独的部分,请删除!操作员按此行操作。var cell=tableView.dequeueReusableCellWithIdentifier(“cell”)为!PFTableViewCell。也可以看到我编辑过的答案。现在你得到了什么?
import UIKit
import Parse
import ParseUI

class viewUniversityList: PFQueryTableViewController {


@IBOutlet var uiTableView: UITableView!

override init(style: UITableViewStyle, className: String!){
    super.init(style: style, className: className)
}

required init(coder aDecoder: NSCoder){
    super.init(coder: aDecoder)

    self.parseClassName = "University"
    self.textKey = "universityEnrolledName"
    self.pullToRefreshEnabled = true
    self.paginationEnabled = false
}

override func viewDidLoad() {
    super.viewDidLoad()

    uiTableView.delegate = self
    uiTableView.dataSource = self

    // Uncomment the following line to preserve selection between presentations
    // self.clearsSelectionOnViewWillAppear = false

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem()
}

override func queryForTable() -> PFQuery {
    var query = PFQuery(className: "University")
    query.orderByAscending("universityEnrolledName")
    return query;
}

override func textKey() -> NSString {
    return "universityEnrolledName"
}

// MARK: - Table view data source

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell {

    var cell = super.tableView(tableView, dequeueReusableCellWithIdentifier:indexPath, object:object) as! PFTableViewCell!

    if let classEnrolledName = object?["classEnrolledName"] as? String{
        cell?.detailTextLabel?.text = classEnrolledName
    }

    return cell;
}