gpt4 book ai didi

ios - 如何使用解析 PFQuery 链接约束

转载 作者:行者123 更新时间:2023-11-28 21:50:27 26 4
gpt4 key购买 nike

解析 PFQuery 的链接约束有问题。

我想要什么:

我想获取按发布日期排序的 50 公里左右的所有照片。最新的第一。 (orderByDescending("createdAt")

如果我不设置位置限制,一切正常,因为我所有的照片都按日期排序。

当我为位置输入 whereKey 时,结果仍然是有序的,但由于某种原因,我无法获得所有照片,有些照片被跳过,当我刷新时,我永远不会得到相同的结果...

这是我的代码:

    var findPosts:PFQuery = PFQuery(className: "UserPost")

findPosts.whereKey("location", nearGeoPoint: location, withinKilometers: 50)

findPosts.orderByDescending("createdAt")
findPosts.limit = 10
findPosts.skip = timeLineData.count

最佳答案

好的,根据您的上一条评论,我认为您必须创建一个云代码函数才能执行此操作。

您需要用 Javascript 编写它。该网站有大量关于如何创建它的文档。

您可以创建一个名为 nearestPosts 的函数,然后有一个参数,例如 skiplimit 以及 location.

除了现在,您可以自己构建逻辑,而不是依赖 PFQuery 为您做所有事情。

所以你可以做类似...

  1. 获取该位置 50 公里范围内的所有帖子。
  2. 按照 createdAt 的顺序对帖子进行排序。
  3. skip 之后开始获取第一个 limit 的帖子数。
  4. 以数组的形式返回这些帖子。

本质上它是做你想做的,但你必须手动去做。

然后在 iOS 中你可以做一些像...

[PFCloud callFunctionInBackground:@"nearestPosts"
withParameters:@{@"limit" : @10, @"skip" : @20, @"location" : geoPoint}
block:^(NSArray *posts, NSError *error) {
if (!error) {
// posts array contains the posts you need
}
}];

Parse website 上有很多关于如何使用 Javascript 做事的文档。 .

你的 Javascript 将是这样的......

Parse.Cloud.define("nearestPosts", function(request, response) {
var location = request.params["location"];

getNearestPosts(location).then(function(posts) {
response.success(posts);
}, function(error) {
response.error(error);
});
});

function getNearestPosts(location) {
var promise = new Parse.Promise();

var query = new Parse.Query("UserPost");

query.withinMiles("location", location, 50);

query.find().then( function(results) {
promise.resolve(results);
}, function(error) {
promise.reject(error);
});

return promise;
}

这将获取 50 英里范围内的所有帖子。这只是如何让这一切正常运作的开始。

希望这对您有所帮助。

关于ios - 如何使用解析 PFQuery 链接约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28551413/

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