gpt4 book ai didi

ios - iOS 中使用 parse.com 的帖子评分系统 - 赞成/反对

转载 作者:行者123 更新时间:2023-11-30 14:17:32 24 4
gpt4 key购买 nike

简单:我想要帖子(或图片)的评级系统与 Yik Yak 或 9gag 中的效果相同 - 用户只能对帖子投赞成票或反对票 。我不想将这些数据存储在设备上,而是将所有数据存储在 parse.com 上。我还想统计评论。理想情况下,只需对 parse.com 进行一次查询即可完成所有操作

我当前正在使用此代码,但我认为这不是执行此操作的好方法,因为对于每个图像,它都会创建一个新查询。目前,我在 Parse.com 用户、图像、评论、评级中有 4 个表,所有内容都与指向图像或用户的指针相关。

func loadData(){
forPaginationStart = 0
numberOfImagesPerPage = 5
imageData.removeAllObjects()
var findImageData: PFQuery = PFQuery(className: "Image")
findImageData.whereKey("deleted", equalTo: 0)
findImageData.orderByDescending("createdAt")
findImageData.skip = forPaginationStart
findImageData.limit = numberOfImagesPerPage
findImageData.findObjectsInBackgroundWithBlock{
(objects:[AnyObject]?, error:NSError?)->Void in

if error == nil{
for object in objects! {

let image:PFObject = object as! PFObject
self.imageData.addObject(image)

//comment counts
var countComments = PFQuery(className:"Comment_image")
countComments.whereKey("image_id", equalTo: PFObject(withoutDataWithClassName: "Image", objectId: "\(image.objectId!)"))
countComments.whereKey("deleted", equalTo: 0)
countComments.countObjectsInBackgroundWithBlock {
(count: Int32, error: NSError?) -> Void in
if error == nil {
println("There is \(count) comments for image: \((object.objectId!)!)")
self.commentCount.append(countComments.countObjects())
}
}
}

self.tableView.reloadData()

}

}

//count number of records in DB for pagination end
var totalNumOfRows: PFQuery = PFQuery(className: "Image")
totalNumOfRows.whereKey("deleted", equalTo: 0)
totalNumOfRows.countObjectsInBackgroundWithBlock {
(count: Int32, error: NSError?) -> Void in
if (error == nil) {
self.totalNumRecords = Int(count)
println("total records: \(self.totalNumRecords)")
}


}
}

我让它与 php 和 SQL 一起工作,但对于解析,相同的方法对我不起作用...我问数据库该用户的值(value)是什么,如果是 1,则用户投赞成票,如果是负值,则他投反对票, 0 都不是,我根据值设置按钮SQL查询:

IFNULL((SELECT value FROM rating WHERE image.id = rating.image_id AND rating.user_id = (SELECT id FROM user WHERE uuid='$uuid')), 0) as UserRating

最佳答案

- (instancetype)whereKey:(NSString *)key matchesKey:(NSString *)otherKey inQuery:(PFQuery *)query

您可以使用this method on PFQuery ,例如:

var countComments = PFQuery(className:"Comment_image")
var findImageData: PFQuery = PFQuery(className: "Image")
findImageData.whereKey("deleted", equalTo: 0)
findImageData.orderByDescending("createdAt")
findImageData.skip = forPaginationStart
findImageData.limit = numberOfImagesPerPage
countComments.whereKey("image_id", matchesKey:"objectId", inQuery: )
countComments.whereKey("deleted", equalTo: 0)
countComments.countObjectsInBackgroundWithBlock {
(count: Int32, error: NSError?) -> Void in
if error == nil {
println("There is \(count) comments for all images!")
}
}

通过像这样设置计数查询,您不必为每个图像调用计数,但我不知道在后台 Parse 是否进行优化以使其比当前查询更快。

关于ios - iOS 中使用 parse.com 的帖子评分系统 - 赞成/反对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30946105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com