2014-08-28 5 views

Antwort

11

Es gibt einen kleinen Unterschied und Sie können es aus den Dokumenten und aus dem dekompilierten Code der Parse-Bibliothek sehen (okay, dieser letzte ist komplizierter ...).

Die docs sagt:

fromLocalDatastore(): Ändern Sie den Quelltext dieser Abfrage alle fixierten Objekte.

fromPin(): Ändern Sie die Quelle dieser Abfrage in die Standardgruppe der fixierten Objekte .

Hier können Sie sehen, dass, interally auf Parse, es eine Möglichkeit, all Objekte aus dem gesamten Satz von gepinnten Daten zu bekommen, ohne Filter, sondern auch von einer so genannten „Standardgruppe“. Diese Gruppe ist in dem Parse-Code mit der folgenden Zeichenfolge definiert: _default(O'rly?).

Wenn Sie etwas mit pinInBackground Stift, können Sie es auf verschiedene Weise tun:

pinInBackground() [ohne Argumente]: Speichert das Objekt und jedes Objekt, um es in dem lokalen Datenspeicher verweist.

Dies ist, was die docs sagen, aber wenn Sie den Code zu buchen, werden Sie feststellen, dass der Stift tatsächlich an die durchgeführt werden ... _default Gruppe!

public Task<Void> pinInBackground() { 
    return pinAllInBackground("_default", Arrays.asList(new ParseObject[] { this })); 
} 

Auf der anderen Seite, können Sie immer pinInBackground(String group) rufen eine genaue Gruppe angeben.

Fazit: Jedes Mal, wenn Sie ein Objekt anheften, wird es garantiert an eine bestimmte Gruppe angeheftet. Die Gruppe ist "_default", wenn Sie in den Parametern nichts angeben. Wenn Sie ein Objekt an Ihre benutzerdefinierte Gruppe "G" anheften, wird eine Abfrage mit fromPin() es nicht finden! Weil du es nicht auf "_default", sondern "G" gesetzt hast.

Stattdessen wird die Abfrage mit fromLocalDatastore() garantiert Ihr Objekt finden, da es in "_default", "G" und so weiter suchen wird.

Verwandte Themen