var test = [String]()
var array = [String]()
override func viewDidLoad() {
super.viewDidLoad()
test = ["1", "2"]
var item = String()
var query:PFQuery = PFQuery(className: "Restaurant")
query.findObjectsInBackgroundWithBlock {
(objects: [PFObject]?, error: NSError?) -> Void in
if error == nil {
for object in objects! {
let data = object as PFObject
item = String(data["name"])
print(item)
self.array.append(item)
}
print(self.array)
print(self.array.count)
}
}
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return array.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as UITableViewCell
cell.textLabel!.text = array[indexPath.row]
return cell
}
当我使用" test"数组,可以显示。但是如果我要使用另一个数组,它就不会显示任何内容。不确定是否正确添加了数组,但在输出中,它显示数据。
这是print的输出:
PerBacco
MACA Restaurant
["PerBacco", "MACA Restaurant"]
2
答案 0 :(得分:0)
通过测试,它可以显示表中的数据,因为它是同步的。
但是使用获取数据,它是异步的
您必须在获取数据后调用reloadData
query.findObjectsInBackgroundWithBlock {
(objects: [PFObject]?, error: NSError?) -> Void in
if error == nil {
for object in objects! {
let data = object as PFObject
item = String(data["name"])
print(item)
self.array.append(item)
}
print(self.array)
print(self.array.count)
tableView.realoadData() // here
}
}
答案 1 :(得分:0)
我希望你设置tableView数据源+你必须调用self.tableView.reloadData()
来刷新tableView内容。