我正在使用Parse.com。我有一个数组(命名为“Wants”的objectIds,我想用它来填充每个objectId的相应图像的UICollectionView。我不太确定从哪里开始。
我尝试使用带有“Wants”的Wherekey的PFQuery,但我不确定将什么放入“equalTo”参数。
var downloadCards = PFQuery(className: "User")
downloadCards.whereKey("Wants", equalTo:"")
downloadCards.orderByAscending("Number")
downloadCards.limit = 200
downloadCards.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
if let objects = objects as? [PFObject] {
for object in objects {
objectIds.append(object.objectId!)
parseObjects.append(object["Image"] as! PFFile)
imageNames.append(object["Number"] as! String)
imageExpansions.append(object["ExpansionNumber"] as! String)
self.collectionView.reloadData()
}
}
} else {
println("Error: \(error!) \(error!.userInfo!)")
}
}
收集查看代码:
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return parseObjects.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell: CardsCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! CardsCollectionViewCell
parseObjects[indexPath.row].getDataInBackgroundWithBlock{
(imageData: NSData?, error: NSError?) -> Void in
if error == nil {
let image = UIImage(data: imageData!)
cell.cardsImg.image = image
}
}
return cell
}
答案 0 :(得分:0)
是的,你可以但功能
// Initialise the PFQueryTable tableview
override init!(style: UITableViewStyle, className: String!) {
super.init(style: style, className: className)
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
// Configure the PFQueryTableView
self.parseClassName = "yourClass"
self.textKey = "yourObject"
self.pullToRefreshEnabled = true
self.paginationEnabled = false
}
是异步所以你的collectionView函数返回一个空单元格。最简单的方法是下载所有数据,而不仅仅是更新您的集合视图
答案 1 :(得分:0)
而不是使用whereKey(key:equal:To)而不是使用whereKeyExists(key)。这将返回所有具有Wants数组的对象。
downloadCards.whereKeyExists("Wants")