阵列操作有时会抛出'操作在之前的操作之后无效'

时间:2015-02-18 14:36:18

标签: android parse-platform

在我的一个解析子类中,我有一个这样的方法:

public void updateCheckpoint(String checkpoint, boolean checked) {
    if (checked) {
        addUnique(checkedCheckpoints, checkpoint);
    } else {
        removeAll(checkedCheckpoints, Arrays.asList(checkpoint));
    }
}

此更新紧接着是固定​​到本地数据存储区。

即使添加ProgressDialog以确保在更新之间完成固定,有时也会抛出Operation is invalid after previous operation

是否有更强大的数组操作方式?

2 个答案:

答案 0 :(得分:7)

在Parse documentation under arrays中说

“请注意,目前无法在同一个存储中以原子方式添加和删除数组中的项目。您必须在每种不同类型的数组操作之间调用save。”

当您从解析对象中添加和删除时,它将抛出错误“上一次操作后操作无效”。要避免此错误,请先将新值添加到数组中,保存对象,删除旧值,然后再次保存。

答案 1 :(得分:0)

最初,仪表板上数组的值为(undefined)。如果您手动将其更改为(null)并尝试添加到该get_branches_heights。它会抛出这个错误。