使用Parse API for Unity在iOS上进行复合查询(特别是.or())

时间:2014-09-06 19:49:21

标签: ios facebook unity3d parse-platform

所以我在Unity中有一个脚本,它使用ParseQueries的.Or()方法从Parse数据库中获取一些行。特别是检索表示与两个玩家的相应用户名匹配的行。

有问题的代码看起来像这样。

    var query1 = ParseObject.GetQuery("Game").WhereEqualTo("hostUsername", (string)ParseUser.CurrentUser["username"]).WhereEqualTo("p2username", parseUsername);
    var query2 = ParseObject.GetQuery("Game").WhereEqualTo("hostUsername", parseUsername).WhereEqualTo("p2username", (string)ParseUser.CurrentUser["username"]);

    //Runs both query 1 and query 2, and counts the combined results.
    query1.Or(query2).CountAsync().ContinueWith(t =>
    {

        int count = t.Result;

        if (count != 0) 
        {
            query1.Or(query2).FirstAsync().ContinueWith(y =>
            {
             //Do stuff with the first result
            });
        }
    });

这在Android设备上运行正常,没问题。但是,当我们为iOS设备或至少iPhone构建游戏时,我们会收到以下错误消息:

System.Linq.Enumerable.<CreateConcatIterator>c__Iterator1<Parse.ParseQuery<Parse.ParseObject>>     doesn't implement interface System.Collections.Generic.IEnumerable<Parse.ParseQuery<T>>
* Assertion: should not be reached at mini-trampolines.c:183

我做了一些谷歌搜索,似乎这可能是Facebook SDK或Parse的API中的错误?在旧的Parse论坛上有一些关于它的线索,但没有我能看到的解决方案。

有人在Facebook的开发者页面上发布了这个帖子:https://developers.facebook.com/bugs/750897958275392/,并且在7月份,其中一个开发人员表示他们仍然在开发它。

我的问题很简单,是否有人遇到过此问题并发现了解决方案和/或解决方法?在得到Facebook的回复之前,我猜测我需要采取另一种方法来解决这个问题,但我对这可能是什么感到迷茫。

非常感谢任何回复和帮助,任何人都可以给予。

1 个答案:

答案 0 :(得分:0)

这是Unity SDK中用于解析的错误,订阅此错误以进行更新:https://developers.facebook.com/bugs/750897958275392/