【发布时间】:2016-07-16 18:54:46
【问题描述】:
我是编程新手,在从 Parse 获取图像并将其放入 Image View 时遇到问题。我试图调用“getDataInBackgroundWithBlock”,但自动完成不显示它。
class ListOfCategoriesViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
var categories: [DisplayCategory] = []
override func viewDidLoad() {
super.viewDidLoad()
// let queryCategories = DisplayCategory.query()
let titleQuery = PFQuery(className: "Category")
titleQuery.whereKeyExists("title")
let imageQuery = PFQuery(className: "Category")
imageQuery.whereKeyExists("imageCategory")
let query = PFQuery.orQueryWithSubqueries ([titleQuery, imageQuery])
query.findObjectsInBackgroundWithBlock {(result: [PFObject]?, error: NSError?) -> Void in
self.categories = result as? [DisplayCategory] ?? []
for category in self.categories {
do {
let data = try category.imageCategory?.getData()
category.imageCategory = UIImage(data: data!, scale:1.0) // compiler error here
} catch {
print("could not get image")
}
}
self.tableView.reloadData()
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
extension ListOfCategoriesViewController: UITableViewDataSource {
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return categories.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("CategoryCell") as! CategoryTableViewCell
cell.categoryImageView.image = categories[indexPath.row].imageCategory //compiler error here
return cell
}
}
DisplayCategory 类看起来像这样。这个想法是显示一个表格视图单元格,其中包含来自 Parse 的文本和图像,所以我认为创建新类以实现灵活性而不是字典是最佳选择。
import Foundation
import Parse
class DisplayCategory: PFObject, PFSubclassing {
@NSManaged var imageCategory: PFFile?
@NSManaged var title: String?
static func parseClassName() -> String {
return "Category"
}
override init () {
super.init()
}
override class func initialize() {
var onceToken : dispatch_once_t = 0;
dispatch_once(&onceToken) {
self.registerSubclass()
}
}
}
【问题讨论】:
标签: ios swift parse-platform uiimage