2016-04-20 25 views
1

Ich lese die Ensembles-Dokumentation, in der globale Bezeichner niemals in einer Objektlebensdauer geändert werden sollten. Ich habe jedoch ein Tag-Objekt, das nur aus einem Namensattribut (einem String) besteht. Gemäß der Dokumentation der Ensembles kann auch der Tag-Name als globaler Bezeichner zurückgegeben werden, der aus offensichtlichen Gründen tatsächlich sogar besser ist als die Rückgabe einer UUID.Ändern eines globalen Bezeichners eines Core Data-Objekts mit Ensembles

Meine Frage ist, da der Benutzer Tags in meiner App umbenennen darf, sollte ich das Tag-Objekt aus der Datenbank löschen und neu erstellen, oder das Umbenennen des Tag-Objekts gilt als sicher? (Das Umbenennen des Tag-Objekts führt dazu, dass die App den neuen Tag-Namen als globalen Bezeichner zurückgibt. Dieser scheint mit der Warnung zu kollidieren, den globalen Bezeichner im gesamten Lebenszyklus des Objekts nicht zu ändern.)

Vielen Dank.

Antwort

3

Sie sollten die globale ID nicht ändern, daher sollten die Tag-Objekte als unveränderlich betrachtet werden. Sie können sie löschen oder neue hinzufügen, sogar solche, die auch auf anderen Geräten erstellt wurden. Aber ändern Sie niemals die globale ID.

Mein Rat ist, ein neues Tag-Objekt zu erstellen, wenn der Benutzer umbenennt. Je nach Modell kann das bedeuten, dass die Beziehungen von einem Tag-Objekt zu einem anderen geändert werden, aber das sollte gut funktionieren.

Das Schöne an globalen IDs ist, dass Ensembles die Beziehung zusammenführen können, auch wenn Sie dasselbe Tag auf zwei Geräten gleichzeitig erstellen.

+0

Ihr Rat klingt den Weg zu gehen. Danke für die kristallklare Erklärung. – Joshua

Verwandte Themen