使用Parse查询图像

时间:2015-05-19 11:34:26

标签: swift parse-platform

我正在使用Swift进行解析,我正试图将Parse的图像发布到我的tableView上,但我一直在日志中接收

  

致命错误:在打开Optional时意外发现nil   值

这是我查询图片的代码:

import UIKit
import Parse


class HomePage: UITableViewController {

var images = [UIImage]()
var titles = [String]()
var imageFiles = [PFFile]()



override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    println(PFUser.currentUser())

    var query = PFQuery(className:"Post")
    //query.whereKey("username", equalTo:followedUser)
    query.findObjectsInBackgroundWithBlock {(objects: [AnyObject]?, error: NSError?) -> Void in
        if error == nil {
            // The find succeeded.
            println("Successfully retrieved \(objects!.count) scores.")
            // Do something with the found objects
            for object in objects! {

                // Update - replaced as with as!

                self.titles.append(object["Title"] as! String)


                // Update - replaced as with as!

                self.imageFiles.append(object["imageFile"] as! PFFile)

                self.tableView.reloadData()

            }
        } else {
            // Log details of the failure
            println(error)
        }
    }




    }

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return titles.count


}
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return 500

}

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

    var myCell:cell = self.tableView.dequeueReusableCellWithIdentifier("myCell") as! cell



    myCell.rank.text = "21"
    myCell.votes.text = "4012"
    myCell.postDescription.text = titles[indexPath.row]

    return myCell

    }

}

此外,我还以绿色突出显示了一行代码:

self.imageFiles.append(object["imageFile"] as! PFFile)

我做错了什么,我该怎么做才能让代码从Parse中提取图像?

现在它不再给我错误解包了,但它仍然显示

self.imageFiles.append(object["imageFile"] as! PFFile)

以绿色突出显示,当我打开它时,应用程序会一直崩溃。

the error i keep getting when i run the app

这是我的解析后端,以防可能出现问题:

parse

1 个答案:

答案 0 :(得分:0)

我通过添加ovveride func UITableviewCell

解决了这个问题
imageFile[indexPath.row].getDataInBackgroundWithBlock { (data, error) -> Void in

            if let downloadedImage = UIImage(data: data!) {

                myCell.postedImage.image = downloadedImage

            }

        }

我认为这很有效,因为我摆脱了if error == nil,现在它对我很有用。