填充用户图像和文本帖子,编译和运行但单元格为空。解析斯威夫特

时间:2015-12-03 01:13:01

标签: ios swift parse-platform

我正在尝试填充图片和文字用户的帖子。代码编译并运行但我得到空单元格。

var titles = [String]()
var locations = [String]()
var dates = [String]()
var imageFiles = [PFFile]()

override func viewDidLoad() {
    super.viewDidLoad()

    var privacySettingQuery = PFQuery(className: "Posts")
    privacySettingQuery.whereKey("privacy", equalTo: true)
    privacySettingQuery.findObjectsInBackgroundWithBlock { (objects, error) -> Void in

        if let objects = objects {

            for object in objects {

               self.titles.append(object["name"] as! String)
               self.dates.append(object["dateTime"] as! String)
               self.locations.append(object["location"] as! String)
               self.imageFiles.append(object["imageFile"] as! PFFile)
            }
        }
    }
}    
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete implementation, return the number of rows
    return titles.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath(indexPath: NSIndexPath) -> UITableViewCell {
    let postsCell = tableView.dequeueReusableCellWithIdentifier("PostsCell", forIndexPath: indexPath) as! PostsCell

    postsCell.postImage.image = UIImage(named: "Post-Image-   Placeholder-1.png")
    postsCell.postTitle.text = titles[indexPath.row]
    postsCell.postLocation.text = locations[indexPath.row]
    postsCell.postDate.text = dates[indexPath.row]

    return postsCell
}

任何帮助将不胜感激。除了使用数组之外,还有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

解决空问题。获取对象后需要调用tableView.reloadData()。 模型类如

class Post: NSObject {
    var title: String
    var location: String
    var date: NSDate
    var imageFile: PFFile
} 

在viewController中使用

var posts: [Post]? 

而不是4个数组

答案 1 :(得分:0)

调用此代码时

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

titles.count的值仍为0.完成从parse获取信息并且您拥有数组的值后,必须重新加载UITableView。为此,为UITableView创建一个插座并将其命名为tableView。然后调用此代码tableView.reloadData()

希望这会有所帮助!!