我正在使用解析来上传和检索图片。我使用以下代码上传图片。
@IBAction func uploadButton(sender: AnyObject) {
var imageText = uploadMessage.text
if uploadPreviewImageView.image == nil {
//image is not included alert user
println("Image not uploaded")
}else {
var posts = PFObject(className: "Posts")
posts["imageText"] = imageText
posts["uploader"] = PFUser.currentUser()
posts.saveInBackgroundWithBlock({
(success: Bool, error: NSError?) -> Void in
if error == nil {
var imageData = UIImagePNGRepresentation(self.uploadPreviewImageView.image)
var parseImageFile = PFFile(name: "uploaded_image.png", data: imageData)
posts["imageFile"] = parseImageFile
posts.saveInBackgroundWithBlock({
(success: Bool, error: NSError?) -> Void in
if error == nil {
正如问题的标题所述,我只想检索用户已经拍摄的图像。
var query = PFQuery(className: "Tops")
query.orderByDescending("createdAt")
query.findObjectsInBackgroundWithBlock{
(posts: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
for post in posts!{
self.imageFiles.append(post["imageFile"]as! PFFile)
self.imageText.append(post["imageText"]as! String)
}
println(self.imageFiles.count)
self.topsTableView.reloadData()
} else {
println(error)
}}}
在上面的代码中,我能够检索图像,但是如果我退出并登录到另一个帐户,我就能看到其他用户上传的图像。这怎么可能?我无法找到执行此操作的教程和文档。 谢谢
答案 0 :(得分:1)
您基本上需要为查询定义谓词。 Parse支持NSPredicate
和他们自己的谓词式机制。
出于您的目的,您应该将查询的条件设置为仅用户拍摄的图片。这可以表示为query.whereKey("uploader", equalTo: PFUser.currentUser())
用简单的英语,它就像说 - 嘿查询,返回结果,其中上传者属性具有我当前用户的值。
您在上传时已设置此属性:]