尝试从查询中将 Parse PFFiles 加载到 UITableView
Trying to load Parse PFFiles into UITableView from query
我是一名正在接受培训的 swift 新程序员,运行 遇到了我正在尝试组装的应用程序的问题。
我在论坛中进行了搜索,找到了非常有用的信息,但遗憾的是,我无法根据结果解决我的问题。
我有一个应用程序设置为将用户图像上传为 PFFiles 进行解析,但似乎无法将它们下载到我的 table 视图控制器中的 table 视图。
我尝试实现的大部分代码都没有导致任何错误,但也没有下载所需的图像。
如果这是一个非常基本的问题,我深表歉意,但我已经用尽了所有研究渠道。
我将图像上传到一个名为 Post
的 class,并希望能够根据当前用户的 ID 提取图像。
我试过查询信息,但总是返回一个错误,提示系统无法为查询找到任何内容。我不确定是否有更好的方法来上传和 class 验证解析信息,或者我是否没有正确编码回调。我基本上希望能够检索用户上传的图像和描述,并将它们显示在 "Account" 页面上。
我在 Xcode 7.2 Swift 2.
工作
所以我们必须关心三件事:
1. post
的结构
如果将User 存储在指针中会更好。指针更容易保存和检索。 (指针是一种呈现一对多关系的方式,但在我们的例子中,这意味着一对一)。
因此,在数据浏览器 (parse.com) 中将列 "userID" 替换为 "user" 类型:指针,目标 class:用户。
然后在 xCode
post["user"] = PFUser.currentUser()
2。获取用户
的所有 post
添加此代码:
let query = PFQuery(className: "Post")
query.whereKey("user", equalTo: PFUser.currentUser()!)
query.getFirstObjectInBackgroundWithBlock { (obj: PFObject?, err: NSError?) -> Void in
if err != nil{
// DO something with the objets:
myArray = obj
}
}
3。获取图片
假设您有一个像 imageView
这样的 ImageView
let file: PFFile = post["imageFile"] as! PFFile
file.getDataInBackgroundWithBlock { (data: NSData?, err: NSError?) -> Void in
if data != nil{
imageView.image = UIImage(data: data!)
}
}
大功告成:)
但只是改进代码的一点点:
您不需要在按下确定后关闭警报,因为如果您将样式设置为 .Cancel,这会自动完成!所以改变
alert.addAction((UIAlertAction(title: "OK", style: .Default, handler: { (action) -> Void in
self.dismissViewControllerAnimated(真,完成:无)})))
到
alert.addAction((UIAlertAction(title: "OK", style: .Cancel, handler: nil)))
我是一名正在接受培训的 swift 新程序员,运行 遇到了我正在尝试组装的应用程序的问题。
我在论坛中进行了搜索,找到了非常有用的信息,但遗憾的是,我无法根据结果解决我的问题。
我有一个应用程序设置为将用户图像上传为 PFFiles 进行解析,但似乎无法将它们下载到我的 table 视图控制器中的 table 视图。 我尝试实现的大部分代码都没有导致任何错误,但也没有下载所需的图像。
如果这是一个非常基本的问题,我深表歉意,但我已经用尽了所有研究渠道。
我将图像上传到一个名为 Post
的 class,并希望能够根据当前用户的 ID 提取图像。
我试过查询信息,但总是返回一个错误,提示系统无法为查询找到任何内容。我不确定是否有更好的方法来上传和 class 验证解析信息,或者我是否没有正确编码回调。我基本上希望能够检索用户上传的图像和描述,并将它们显示在 "Account" 页面上。
我在 Xcode 7.2 Swift 2.
工作所以我们必须关心三件事:
1. post
的结构如果将User 存储在指针中会更好。指针更容易保存和检索。 (指针是一种呈现一对多关系的方式,但在我们的例子中,这意味着一对一)。 因此,在数据浏览器 (parse.com) 中将列 "userID" 替换为 "user" 类型:指针,目标 class:用户。 然后在 xCode
post["user"] = PFUser.currentUser()
2。获取用户
的所有 post添加此代码:
let query = PFQuery(className: "Post")
query.whereKey("user", equalTo: PFUser.currentUser()!)
query.getFirstObjectInBackgroundWithBlock { (obj: PFObject?, err: NSError?) -> Void in
if err != nil{
// DO something with the objets:
myArray = obj
}
}
3。获取图片
假设您有一个像 imageView
这样的 ImageView let file: PFFile = post["imageFile"] as! PFFile
file.getDataInBackgroundWithBlock { (data: NSData?, err: NSError?) -> Void in
if data != nil{
imageView.image = UIImage(data: data!)
}
}
大功告成:) 但只是改进代码的一点点:
您不需要在按下确定后关闭警报,因为如果您将样式设置为 .Cancel,这会自动完成!所以改变
alert.addAction((UIAlertAction(title: "OK", style: .Default, handler: { (action) -> Void in
self.dismissViewControllerAnimated(真,完成:无)})))
到
alert.addAction((UIAlertAction(title: "OK", style: .Cancel, handler: nil)))