gpt4 book ai didi

ios - 如何使用Query.limit和Query.skip?

转载 作者:行者123 更新时间:2023-11-29 01:55:06 24 4
gpt4 key购买 nike

过去一周我每天花费大约 13 小时,但我似乎无法弄清楚。我已经滚动到网页的末尾,但我似乎无法正确地对我的表实现“query.skip”和“query.limit”。

“用户”正在关注人,每个人都有很多帖子。我想加载前 5 个,然后在用户向下滚动表格时加载下 5 个。

我总共有 19 个我们关注的用户的帖子。

问题:第一次运行时,一切正常,但是当我滚动到第四行时,它应该运行,skip = 5并且limit = 10,依此类推第四行。但是当它运行“loadFollowersImages()”函数时,它开始加载 15 个对象,然后是 30 个、46 个……一切重复并加倍。

我做错了什么?为什么它不跳到极限并在新极限上加 5。

我的viewDidLoad:

override func viewDidAppear(animated: Bool) {

if resultsHasNameArray.count == 0 {

// to start download 5 posts

skip = resultsHasNameArray.count
limit = resultsHasNameArray.count + 5

getFollowingData() {

}

}

获取用户关注的人员列表:在本例中是两个用户

func getFollowingData() {

var followQuery = PFQuery(className: "follow")
followQuery.whereKey("user", equalTo: PFUser.currentUser()!.username!)

var objects = followQuery.findObjects()

for object in objects! {

self.followArray.append(object.objectForKey("userToFollow") as! String) // stores all the usernames Current user is following
}

loadFollowersImages() // once we know who we are following, start to download their "posts"

}

返回两个用户:James 和 Amy

现在下载他们的帖子:总共19个首先下载 5 个帖子。

func loadFollowersImages(){

var photoQuery = PFQuery(className: "PostPhoto")

photoQuery.skip = skip! // oringally to 0
photoQuery.limit = limit! // oringally to 5

photoQuery.whereKey("username", containedIn: followArray)
photoQuery.addDescendingOrder("createdAt")

photoQuery.findObjectsInBackgroundWithBlock {
(objects:[AnyObject]?, error: NSError?) -> Void in

if error == nil {

for object in objects!{

self.resultsHasNameArray.append(object.objectForKey("username") as! String)
self.resultsHasUserImageFile.append(object.objectForKey("userImageFile") as! PFFile)

self.resultsTable.reloadData()

}

}
}

成功返回 5 个帖子。

现在,当用户向下滚动到第 5 行时,它应该运行上面的 (loadFollowersImages()) 方法并添加 5 来跳过和 5 来限制(分别为 5、10)。

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {

if indexPath.row == limit! - 1{ // when scrolling down, if our limit meets index path run

skip = skip! + 5 // adds '5' to skip
limit = limit! + 5 // adds '5' to limit

loadFollowersImages() // runs above method
}

}

最佳答案

您不想更改限制,您只想下载接下来的 5 个,因此在所有交互期间限制仍然是 5,您应该更改的唯一数字是要跳过的行数,但这需要调整在 if 条件中,当显示的行等于限制加上已跳过的行数时,您希望运行 loadFollowersImages 函数,如下所示:

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {

if indexPath.row == limit! + skip! - 1{
// when scrolling down, if our limit + rows skiped meets index path run
skip = skip! + 5 // adds '5' to skip and limit is constante
loadFollowersImages() // runs above method
}

}

关于ios - 如何使用Query.limit和Query.skip?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30958749/

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