我是新來的編程和遇到從Parse中獲取圖像並將其放入圖像視圖的問題。我試圖調用'getDataInBackgroundWithBlock',但自動完成不顯示它。不能指定UIImage類型的值?鍵入PFFile?
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()
}
}
}
新增DisplayCategory。如果你可以看看它,真的很感激。謝謝! –