0

我正在尝试将解析类中的计数显示为标签,但发生以下错误:

"CompareBaseObjectsInternal 只能从主线程调用。加载场景时,构造函数和字段初始化程序将从加载线程执行。不要在构造函数或字段初始化程序中使用此函数,而是将初始化代码移动到 Awake 或 Start 函数。”

我的代码如下。谁能帮我?

ParseQuery<ParseObject> USQuery = ParseObject.GetQuery ("Sales")
    .WhereEqualTo ("transactionType", "Purchase")
    .WhereGreaterThan ("createdAt",DateTime.Now.AddDays(-1));

USQuery.CountAsync().ContinueWith(t =>
{
    int result=t.Result;
    labelUSSale.text=result.ToString();
});
4

1 回答 1

0

您只能从主线程发送 NGUI 标签的值。这里的简单解决方案是等到“结果”变量发生变化,然后分配 label.text。我建议查看 Tasks,有更友好的方式来控制 Parse.com 查询。

https://parse.com/docs/unity_guide#tasks

试试这个:

IEnumerator GetSales()
{   
    int result = -1;

    ParseQuery<ParseObject> USQuery = ParseObject.GetQuery ("Sales").WhereEqualTo ("transactionType", "Purchase").WhereGreaterThan ("createdAt",DateTime.Now.AddDays(-1));

    USQuery.CountAsync().ContinueWith(t =>
    {
        result=t.Result;  
    });

    while (result == -1) yield return new WaitForSenOfFrame();
    labelUSSale.text=result.ToString();

}
于 2015-02-17T07:32:23.653 回答