Entität aus NSPersistentCloudKitContainer entfernenIOS

Programmierung für iOS
Anonymous
 Entität aus NSPersistentCloudKitContainer entfernen

Post by Anonymous »

Ich verwende NSPersistentCloudKitContainer und habe dem Kerndatenmodell eine Entität (zur privaten Datenbank) hinzugefügt. Jetzt ist mir klar geworden, dass ich diese Entität nicht mehr benötige und sie aus meinem Code entfernen möchte.
Aber es scheint nicht so einfach zu sein, sie aus dem Kerndatenmodell und dem gesamten referenzierenden Code zu löschen. Laut diesem Video von der WWDC 2022 (https://developer.apple.com/videos/play/wwdc2022/10120/) können Sie nur neue Entitäten und neue Attribute zu Entitäten hinzufügen. Es sind keine anderen Vorgänge zulässig.
Wie gehen Benutzer im Allgemeinen mit diesem Fall um, wenn sie NSPersistentCloudKitContainer verwenden? ? Ich habe versucht, die Entität aus dem Kerndatenmodell zu löschen, und im Protokoll wurden einige Warnungen angezeigt, die besagten, dass die Entität nicht mehr gefunden werden konnte (verständlich) und dass die dauerhafte Verlaufsverfolgung für diese Transaktionen unterbrochen wurde. Als ich die App das nächste Mal erneut ausführte, erhielt ich keine Warnungen. Für mich schien es in Ordnung zu sein, aber ich habe ChatGPT gefragt und mir nicht empfohlen, es zu löschen:
Konkrete Szenarien

Szenario 1: Ein anderes Gerät (sogar Monate später)

  • Benutzer installiert App auf einem neuen Gerät
  • CloudKit sendet alle ihm bekannten Datensatztypen
  • Einschließlich Entität
  • Kerndaten können sie nicht zuordnen
  • Synchronisierungsfehler, gelöschte Datensätze oder blockierte Spiegelung

Szenario 2: Alte App-Version kommt zurück

  • Benutzer öffnet einen älteren Build aus dem TestFlight-/App Store-Cache
  • Diese Version erstellt immer noch Entity
  • lädt Datensätze in CloudKit hoch
  • neue Version kann sie nicht dekodieren

Szenario 3: Randfälle der Hintergrundsynchronisierung

  • CloudKit liefert Änderungen außerhalb der Reihenfolge
  • Löschungen kommen nach Einfügungen an
  • Core Data erkennt einen Datensatztyp, den es nicht mehr versteht
  • Spiegelungsdelegatenfehler erscheinen später, nicht sofort
Diese Fehler treten häufig auf:
  • Tage oder Wochen später
  • Auf einem anderen Gerät
  • Nur für einige Benutzer
  • Als „zufällige CloudKit-Probleme“
Deshalb ist Apple bei der WWDC so streng.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post