Ich suche nach guten Erklärungen da draußen. Ich habe ein 1000-seitiges Buch über objective-c, aber leider ist der Teil über Speicherverwaltung, Zählen, ziemlich schlecht und schwer zu verstehen beschrieben.Wo sind die besten Erklärungen zum Speichermanagement für das iPhone?
Antwort
Dies ist einer der knappste guten Erklärungen ich gefunden habe:
Memory Management in Objective-C Learn Obj-C Memory Management
Sie haben einige einfache Antworten bekommen, aber auch Links zu Apples Dokumentation.
Eine schnelle Erklärung: Alles, was Sie alloc, neue, behalten oder kopieren Sie müssen auch Release. Auch alles, was Sie NICHT Alloc oder kopieren Sie behalten sollten, wenn Sie auf Festhalten an sie über die aktuelle Nachrichtenschleife planen (oder Sie riskieren es Autoreleased und immer eine ungültige Referenz wird).
CocoaDev immer hat ziemlich gute Ressourcen und deren Einführung in der Speicherverwaltung ist keine Ausnahme.
Natürlich gibt es viele freie Ressourcen für über Speicherverwaltung zu lernen, aber wenn Sie wirklich neu in das Thema sind und würde einen visuellen Ansatz bevorzugen, Steve Scott (der Typ, der den Mac Developer Network läuft) hat eine große , Suppe-zu-Nüsse-Set von Trainingsvideos, die Sie für USD 10 herunterladen können: http://www.mac-developer-network.com/videotraining/beginner/vid001/. Es ist im Grunde eine Vorlesung, die über die Verwendung von Release und Autorelease hinausgeht und darüber spricht, wie das OS Speicher verwaltet. Sehr hilfreich, wenn Sie dieses Zeug in Comp verpasst haben. Sci. 101.
FWIW, ich verwendete eine Reihe von drei "Wenn" -Bedingungen, die hilfreich waren, als ich anfing (z. B. "Wenn ich Zuweisen oder Kopieren und Objekt, dann ..."). Es war leichter für mich, sich zuerst an diese drei Bedingungen zu erinnern als an das vollständige Regelwerk. Ich habe ein kurzes Tutorial geschrieben, das diese "Gehirn-Trigger" verwendet, um die Regeln zu erklären, falls es für andere hilfreich ist. http://www.clintharris.net/2009/three-brain-triggers-for-objc-memory-mgmt/
Speziell für die Speicherverwaltung um den Einsatz von NIB ist und IBOutlet, ist dies die kürzeste und klarste Beschreibung, die ich gesehen habe
http://blog.airsource.co.uk/index.php/2008/12/23/memory-management-and-nibs/
Für mich Apple's Memory Management Programming Guide recht gut funktioniert.
Es erklärt gleich zu Beginn, so dass Sie die Grundlagen der Arbeit beginnen können. Aber es geht auch in fortgeschrittenere Themen, wenn Sie interessiert sind.
Interessanter Artikel: http://interfacelab.com/objective-c-memory-management-for-lazy-people/
- 1. Wo sind die besten Erklärungen für Variablen, Zeiger, Referenzen und Speicheradressen im Netz?
- 2. Was sind die besten Ansätze zum Lokalisieren von Bildern mit Text für das iPhone?
- 3. Wie funktioniert das Speichermanagement für Scala Collections?
- 4. Was sind die besten Plugins für Eclipse?
- 5. Was sind die besten Anwendungsbereiche für Dokumentspeicher?
- 6. Was sind die besten Ressourcen zum Erlernen von Windows PowerShell?
- 7. Was sind die besten Remoting-Technologien für mobile Anwendungen?
- 8. Was sind die besten ASP.NET-Leistungsindikatoren zum Überwachen?
- 9. Wo finde ich ein High Level Tutorial zum iPhone Spieldesign?
- 10. Welche Systemkonfiguration eignet sich am besten für die iPhone-Anwendungsentwicklung?
- 11. Was sind die besten Speicherbereinigungseinstellungen für die Clientseite?
- 12. Wo sind die VBProjectsEvents?
- 13. Was sind die besten Seiten/Bücher zum Lernen von Apache?
- 14. Was sind die besten Referenzen für die Verwendung von jQuery?
- 15. Welche Ports sind am besten für das Webhosting geeignet?
- 16. Wo sind die Ressourcen für Locales gespeichert?
- 17. Wie behandelt Angularjs das Speichermanagement mit ngView?
- 18. Was sind die besten Praktiken für String-Datenfeldgrößen?
- 19. Was sind die besten Tastaturmakros für die Programmierung in Windows?
- 20. Welche sind die besten Websites für die Benutzeroberfläche?
- 21. Was sind die besten Tools für Unit-Tests von iPhone-Anwendungen?
- 22. Wo ist die Logik für gekoppelte Domänenmodelle am besten?
- 23. Was sind die besten Tools zum Optimieren von Abfragen in VBA und warum?
- 24. Wo sind die magischen Regeln für GHC?
- 25. Wo sind die Javadocs für Lotus Notes.jar?
- 26. Was sind die besten leichten Lösungen für Drag & Drop?
- 27. Was sind die besten Responsive Blogger-Vorlagen für technische Blogger?
- 28. Die besten BDD-Praktiken zum Entwerfen von Gurkenszenarien für Formulare
- 29. Mehrere Sprachen für WCF-Webdienste. Was sind die besten Praktiken?
- 30. Welche sind die besten Alternativen zu Lucene?
... und rememeber, dass alles init gestartet ... nach folgenden Regeln. initWithImage initWithoutClosingTheFridgeDoor usw. Sie auch diese Regeln befolgen sollten, wenn Klassen implementieren. init ... -Nachrichten sollten ein Objekt mit einer Retain-Anzahl von eins usw. zurückgeben. –
Das ist nicht ganz richtig. Von der Apple-Dokumentation http://developer.apple.com/mac/library/documentation/cocoa/conceptual/MemoryMgmt/Articles/mmRules.html # // apple_ref/doc/uid/20000994-BAJHFBGH: ** Sie übernehmen den Besitz eines Objekts, wenn Sie es mit einer Methode erstellen, deren Name mit "alloc" oder "new" beginnt oder "copy" enthält (z. B. alloc , newObject oder mutableCopy), oder wenn Sie eine Retain-Nachricht senden. ** – Florin
Eric, ich denke, Sie meinen * alloc *, * behalten * oder * kopieren *. :) – h4xxr