Objective-C-Namenskonventionen mit ARC und mögliche Einschränkungen

Ich habe Erfahrung mit reiner ARC-Codierung. Als Compiler-Feature wird die Objctive-C-Methodenfamilie berücksichtigt, die Aufrufe zum Beibehalten / Freigeben von Rechten immer dann ausführt, wenn sie benötigt werden.

Alle Methoden, die mit beginnenalloc, mutableCopy, copy undnew Erstelle ein neues Objekt. Sie erhöhen die Retentionszahl. Infolgedessen gibt ARC jeden Zeiger (und damit das damit verbundene Objekt) frei, wenn ich ihn nicht mehr benötige.

Ich denke, dass Probleme auftreten können, wenn ich Methoden schreibe, die nicht den Namenskonventionen entsprechen. Zum Beispiel, wenn ich eine Methode schreibe wienewCustomer Was kann passieren, wenn in einer ersten Version ein automatisch freigegebenes Objekt zurückgegeben wird, während in einer zweiten Version dies nicht der Fall ist?

Insbesondere meine Fragen sind die folgenden (sie gehören zu derselben Argumentation):

Was passiert, wenn sowohl der aufrufende als auch der aufgerufene Code mit ARC kompiliert werden?(ein) Was passiert, wenn der aufrufende Code mit ARC kompiliert wird, während der aufgerufene Code mit Nicht-ARC kompiliert wird?(b) Was passiert, wenn der aufrufende Code mit Nicht-ARC kompiliert wird, während der aufgerufene mit ARC kompiliert wird?

Wir würden uns über eine Antwort freuen, die zeigt, wie ARC unter der Haube funktioniert (objc_release, objc_retainAutoreleasedReturnValue, usw.).

Danke im Voraus.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage