Ich habe ein Singleton, das ein NSArray hat, das erstellt wird, wenn die erste Instanz des Singleton ist. Wann sollte ich dieses Array auf der Festplatte in Dealloc-Methode speichern? Ich habe die Apple-Dokumente überprüft und es heißt, dass Sie nicht in dealloc sollten, aber nicht sagen wo. Soll ich also jedes Mal, wenn das Array geändert wird, auf die Festplatte schreiben? Das scheint wie eine Verschwendung?Speichern von Array auf Platte in einem Singleton
Antwort
Im Allgemeinen sollten Sie den Status in der Nähe des Zeitpunkts speichern, zu dem der Status geändert wurde. Wenn der von Ihnen gespeicherte Status sehr klein ist, können Sie warten, bis der Anwendungsdelegate -applicationWillResignAktiv: method aufgerufen wird. Oder Sie könnten Singleton bei NSNotificationCenter registrieren, um UIApplicationWillResignActionNotification zu beobachten. Und dann speichern.
Wenn Ihr Array sehr groß ist, möchten Sie möglicherweise weniger häufig speichern. Sie müssen jedoch auch darauf achten, wie lange es dauern kann, bis das Array auf die Festplatte geschrieben wurde. Abhängig von den Umständen, unter denen Ihre Anwendung als aktiv zurücktritt, erhalten Sie möglicherweise nicht viel Zeit, um auf die Festplatte zu schreiben.
Haben Sie ein gutes Gespür für die maximale Datenmenge, die möglicherweise geschrieben werden muss? Ist das eingeschränkt oder offen?
- 1. Speichern NSMutableArray auf Platte
- 2. Array welche Seiten auf Platte
- 3. Speichern einer In-Memory-Datenbank auf Platte
- 4. Segmentierungsfehler beim Speichern von Pandas Datenframe auf Platte mit to_hdf
- 5. Speichern von mehreren Eingängen in einem Array
- 6. Speichern von JSON-Daten in einem Array
- 7. Speichern von Zufallszahlen in einem Array-Vergleich
- 8. C# - Speichern von Datentypen in einem Array
- 9. Speichern Ergebnis in einem Array
- 10. Mauskoordinate in einem Array speichern
- 11. MJPEG-Stream auf Platte schreiben
- 12. Array der Singleton-Klasse
- 13. Verwenden von CDI in einem Singleton-Muster
- 14. was ist gut setAudioEncodingBitRate auf Platte Stimme
- 15. Speichern von Daten von neuen Klasseninstanz in einem Array
- 16. Speichern von Daten in einem Array von char *
- 17. Verwenden von getline in loop, Speichern in einem Array
- 18. Speichern einer Spalte in einem Array
- 19. Speichern Wert de $ _POST in einem Array
- 20. Android Kann nicht in einem Array speichern
- 21. Liste der Formulare in einem Array speichern
- 22. Speichern von Elementen in der Tabellenansicht in einem Array
- 23. Leistungsprobleme beim Speichern von Objektreferenzen auf Array
- 24. Speichern von Formularelementen in einem Array mit Mungo
- 25. Kann ich ein Array in einem anderen Array speichern?
- 26. Möchten Ausgabe in einem Array speichern
- 27. Elemente einer Datentabelle in einem Array speichern
- 28. Speichern von beliebigen primitiven Typen in einem Java-Array
- 29. Lesetextdatei und Speichern von Spalten in einem Array
- 30. So speichern Sie ein Array von NSManagedObjects in einem NSManagedObject
Nun, jedes Mal, wenn der Benutzer Zellen in einer Tabelle neuordnet (und es gibt tatsächlich 2 NSArrays) die Arrays im Singleton aktualisiert werden, wird der Benutzer wahrscheinlich mehr als eine Zeile auf einmal umsortieren, aber es wird aufgerufen werden Jede Zeile wurde verschoben. Daher möchte ich nicht, dass der Benutzer eine Zeile verschiebt, die App auf Festplatte speichert, der Benutzer eine weitere Zeile eine Millisekunde später verschiebt und erneut auf Festplatte speichern muss. –
Gibt es eine Vorstellung davon, dass der Benutzer zuletzt tätig geworden ist ändert sich, wie ein "Fertig" Knopf? Gibt es einen "Cancel", der die letzten Änderungen verwerfen würde? – westsider
Wie könnte ich das vergessen haben? Warum habe ich die Frage gestellt :) –