2015-07-20 42 views
0

我有一个自定义表格视图控制器,我试图从分析表中提取数据。虽然我能够将数据保存到这个解析数据,空白显示了当使用相同的代码来检索:无法从分析表中检索数据

代码TVC:

import UIKit 

class SavedNoteTableViewController: UITableViewController { 

var noteObjects: NSMutableArray! = NSMutableArray() 


override func viewDidLoad() { 
    super.viewDidLoad() 


} 

override func viewDidAppear(animated: Bool) { 
    super.viewDidAppear(animated) 

    if (PFUser.currentUser() == nil) { 



    }else { 
     self.fetchAllObjectsFromLocalDatastore() 
     self.fetchAllObjects() 

    } 

} 

func fetchAllObjectsFromLocalDatastore() { 

    var query: PFQuery = PFQuery(className: "savedNotes") 

    query.fromLocalDatastore() 

    query.whereKey("username", equalTo: PFUser.currentUser()!.username!) 


    query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in 

     if (error == nil) { 

      var temp: NSArray = objects as NSArray! 


      self.noteObjects = temp.mutableCopy() as! NSMutableArray 

      self.tableView.reloadData() 

     }else { 

      println(error!.userInfo) 

     } 

    } 

} 


func fetchAllObjects() { 

    PFObject.unpinAllObjectsInBackgroundWithBlock(nil) 

    var query: PFQuery = PFQuery(className: "savedNotes") 

    query.whereKey("username", equalTo: PFUser.currentUser()!.username!) 

    query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in 

     if (error == nil) { 


      PFObject.pinAllInBackground(objects, block: nil) 

      self.fetchAllObjectsFromLocalDatastore() 


     }else { 

      println(error!.userInfo) 

     } 

    } 


} 




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 1 
} 

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

} 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = self.tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! SavedNoteTableViewCell 

    var object: PFObject = self.noteObjects.objectAtIndex(indexPath.row) as! PFObject 

    cell.tickerLabel?.text = object["ticker"] as? String 

    return cell 
} 


override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 


    /* 
    var upcoming: AddNoteTableViewController = segue.destinationViewController as! AddNoteTableViewController 

    if (segue.identifier == "editNote") { 

    let indexPath = self.tableView.indexPathForSelectedRow()! 

    var object: PFObject = self.noteObjects.objectAtIndex(indexPath.row) as! PFObject 

    upcoming.object = object; 

    self.tableView.deselectRowAtIndexPath(indexPath, animated: true) 

    } 
    */ 
} 



// 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 { 

     var object: PFObject = self.noteObjects.objectAtIndex(indexPath.row) as! PFObject 



     // Delete the row from the data source 
     let objectToDelete = object 
     objectToDelete.deleteInBackgroundWithBlock { 
      (success: Bool, error: NSError?) -> Void in 
      if (success) { 
       // Force a reload of the table - fetching fresh data from Parse platform 
       // self.loadObjects() 
       // self.tableView.reloadData() 
       self.fetchAllObjectsFromLocalDatastore() 
       self.fetchAllObjects() 

      } else { 
       // There was a problem, check error.description 
      } 
     } 




    } 

} 

} 

代码自定义的表格视图单元格:

import UIKit 

class SavedNoteTableViewCell: UITableViewCell { 

@IBOutlet weak var tickerLabel: UILabel! 

override func awakeFromNib() { 
    super.awakeFromNib() 
    // Initialization code 
} 

override func setSelected(selected: Bool, animated: Bool) { 
    super.setSelected(selected, animated: animated) 

    // Configure the view for the selected state 
} 

} 

没有出现错误消息,尽管存在数据库中的记录,但只显示空白。任何建议感激!

+0

'savedNotes'类有一个叫做'username'场? – kRiZ

+0

是的,我做了第一件事,我仔细检查:) – user2647092

回答

0

我认为你是在正确的轨道上,但我与解析的经验,当你到达那个代码块

query.findObjectsInBackgroundWithBlock { (objects:[AnyObject]?, error:NSError) -> Void in 
    { 
    if error == nil { 

     if let Newobjects = objects as! [PFObject]{ 

      // then you could do whatever you want with the new check objects 
      // put it in your array do 

     } 

    } 

    }