2016-01-13 22 views
0

,所以我有一个自定义的parseObject称为任务和另一个名为组。我在我的Group对象中保存任务的数组列表,然后检索组和任务。但是,无论何时使用group.getList(“tasks”),我都会在标题中看到错误,即使我绝对没有将Task保存为JSONObject。我已经看过了stackoverflow,但我似乎无法找到任何其他人有这个问题。

我也有另外的parseObject称为消息,我访问在完全相同的方式,我没有得到这个错误。

@ParseClassName("Task") 
public class Task extends ParseObject { 

    public Task getTask(String objectId) { 
     return (Task) getParseObject(objectId); 
    } 

    public String getDescription() { 
     return getString("description"); 
    } 

    public String getLocation() { 
     return getString("location"); 
    } 

    public String getDate() { 
     return getString("date"); 
    } 

    public String getTime() { 
     return getString("time"); 
    } 
} 

这里就是我找回我的组

ParseQuery<Group> query = ParseQuery.getQuery("Group"); 
query.include("messages"); 
query.include("tasks"); 
query.whereEqualTo("name", groupName); 
query.getFirstInBackground... 

这里的地方我尝试检索任务列表。将Object更改为Task只会将错误位置移动到getList行。

ArrayList<Task> tasks = new ArrayList<>(); 
List<Object> list = this.getList("tasks"); 
tasks.clear(); 
for (Object obj : list) { 
    tasks.add((Task) obj); // here is the error spot 
} 
return tasks; 

这是我的我的任务保存到Group对象

final Task task = new Task(); 
task.put("description", description); 
task.put("date", date); 
task.put("time", time); 
task.put("location", location); 
task.saveInBackground(); 

group.add("tasks", task); 
group.saveInBackground(); 
+0

如果你已经使用“对象”它不应该是“的parseObject” - 你应该从的parseObject,而不是一个对象铸造? –

+0

这没有什么区别。我犯了同样的错误 – googlygoogly2

回答

0

我也有类似的问题,即让我存储在现场从我ParseUser定制ParseObjects的名单,经努力后要访问其中一个对象,我得到了一个ClassCastException。我通过在它崩溃的那一行放置一个断点来进一步调查,并且在查看调试器屏幕时,我注意到我从ParseUser检索到的对象列表实际上是一个空值列表。

我认为这个问题可能是对象本身为空,由于某种原因,当的parseObject为空,似乎解决自己是一个JSONObject,而不是一个适当的parseObject。我会检查你的Parse仪表板,并确保这个对象不是null。另外,如果您的列表中有指向Task对象的指针,请确保这些指针实际上指向实际上仍然存在于数据库中的任务,因为您可能已经过时了指向列表中的幽灵对象的指针。

相关问题