Wenn eine Datei vom Dokumentinteraktionssystem an eine iOS-Anwendung übergeben wird, wird eine Kopie der Datei im Ordner Documents/Inbox
des Anwendungspakets gespeichert. Nachdem die Anwendung die Datei verarbeitet hat, muss sie offensichtlich die Datei von Documents/Inbox
entfernen, andernfalls wird der Ordner weiter wachsen und Speicherplatz auf dem Gerät verschwenden.Gute Möglichkeit zum Verwalten des Ordners Dokumente/Posteingang in einer iOS-App
Ich bin mit dieser einfachen Lösung (A) jedoch unwohl, da meine App mit dem Benutzer interagieren muss, bevor er die Verarbeitung beenden und die Datei entfernen kann. Wenn der Nutzer die App während dieses Interaktionszeitraums aussetzt und die App im Hintergrund beendet wird, wird die veraltete Datei beim nächsten Start der App nicht entfernt. Natürlich kann ich meine App verbessern, um dieses Szenario abzudecken, aber ich vermute, dass es immer einen anderen Grenzfall geben wird, der mich mit einem "unsauberen" Documents/Inbox
-Ordner verlassen wird. Eine bevorzugte Lösung (B) wäre daher, den Ordner Documents/Inbox
zu einem geeigneten Zeitpunkt zu entfernen (z. B. wenn die App normal startet, d. H. Nicht über eine Dokumenteninteraktion). Ich fühle mich immer noch unwohl dabei, weil ich auf einen Dateisystempfad zugreifen würde, dessen Speicherort nirgendwo offiziell dokumentiert ist. Zum Beispiel würde meine App brechen, wenn in einer zukünftigen Version von iOS das Dokumenteninteraktionssystem keine Dateien mehr in Document/Inbox
platziert.
Also meine Fragen sind:
- Möchten Sie die Lösung A oder B empfehlen?
- Verwenden Sie einen anderen Ansatz und können Sie vielleicht einen Überblick darüber geben, wie Ihre App die
Document/Inbox
verwaltet? - Last but not least: Kennen Sie eine offizielle Apple-Dokumentation, die das Thema behandelt und die ich übersehen habe?
"... Ich biss in die Kugel, machte die harten Entscheidungen im Voraus ..." - gut für dich! Zu oft bewältigen Entwickler die Komplexität, indem sie ihre Hände hochwerfen und Entscheidungen dem Benutzer vorenthalten, was schnell zu einem schwer zu verstehenden und frustrierenden App-Erlebnis führen kann. Diese Lösung ist sehr nah an dem, auf das ich geantwortet hätte. – Tim