我这样做是为了获取数据并在表格视图中显示它 但它没有显示任何东西。
我使用了这段代码:
import UIKit
import Parse
import Bolts
class Parsedata: UIViewController, UITableViewDelegate, UITableViewDataSource {
//@IBOutlet var NTableView: UITableView!
@IBOutlet var NTableView: UITableView!
var NArray:[String] = [String]()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.NTableView.delegate = self
self.NTableView.dataSource = self
// retrieve notification from parse
self.RetrieveN()
NSLog("Done with it")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func RetrieveN () {
//create a pfquery
var query:PFQuery = PFQuery(className: "Notification")
//call findobject in background
query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
//clear the Narray
self.NArray = [String]()
//loop through the objects array
for Nobject in objects!{
//retrieve the text column value of each PFobject
let Ntext:String? = (Nobject as! PFObject) ["Text"] as? String
// assign it into your Narray
if Ntext != nil {
self.NArray.append(Ntext!)
}
}
if error == nil {
// The find succeeded.
print("Successfully retrieved \(objects!.count) Notifications.")}
//reload the table view
self.NTableView.reloadData()
}
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.NTableView.dequeueReusableCellWithIdentifier("NCell") as UITableViewCell?
cell?.textLabel?.text = self.NArray[indexPath.row]
return cell!
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return NArray.count
}
}
它运行正常,因为它显示在LOG容器上检索到3个对象。
答案 0 :(得分:1)
除非您的代码多于此处发布的代码,否则您还需要实施numberOfSectionsInTableView
并返回1
答案 1 :(得分:0)
我刚刚学会了如何自己动手,这就是如何从解析中加载数据并将其保存为NSMutableArray然后使用该数据填充表视图。
let NArray : NSMutableArray = NSMutableArray()
然后您可以使用您使用
创建的查询var query:PFQuery = PFQuery(className: "Notification")
query.findObjectsInBackgroundWithBlock( { (AnyObject objects, NSError error) in
if error == nil {
self.NArray = NSMutableArray(array: objects!)
self.NTableView.reloadData()
} else {
print(error?.localisedDescription)
})
这会将所有内容加载到变量NArray中,然后可以在tableView函数中使用indexPath。 tableView cellForRowAtIndexPath中的那行代码将是
cell?.textLabel?.text = self.NArray[indexPath.row] //you may have to cast this as? String
就像我说这是我加载数据的方式,我使用它来加载PFUser用户名,个人资料图片等,并在自定义表格视图单元格中显示它们。 您可能需要稍微调整这些方法,但基本方法是