我试图将解析类中的计数显示为标签,但发生以下错误:
"只能从主线程调用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();
});
答案 0 :(得分:0)
您只能从主线程发送NGUI标签的值。这里的简单解决方案是等到&#34;结果&#34;变量然后分配label.text。我建议查看任务,有更友好的方法来控制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();
}