私はプログラミングに慣れておらず、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のテキストと画像を持つ1つのテーブルビューセルを表示することです。したがって、辞書ではなく柔軟性のために新しいクラスを作成することが最適な選択肢だと思いました。
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のように見えます。あなたがそれを見ることができれば本当に感謝します。ありがとうございました! –