Czy można wyświetlić dokładny kod wygenerowany przez @synthesize?Wyświetlanie kodu wygenerowanego przez @synthesize dla programu pobierającego/ustawiającego
Odpowiedz
można odczytać źródła kompilatora dzyń, aby zobaczyć kod C++, który generuje metody getter i setter:
http://llvm.org/svn/llvm-project/cfe/trunk/lib/CodeGen/CGObjC.cpp
To bardzo tajemnicze, ale to najdokładniejszy sposób widzenia wygenerowany kod.
Można również spojrzeć na implementacje objc_getProperty i objc_setProperty w Apple's runtime implementation. Chociaż kod ten nie jest dosłownie taki sam, jak kod generowany, jest znacznie łatwiejszy do odczytania i daje wyraźne wskazanie, co powinien zrobić odpowiedni program pobierający i ustawiający.
Jeśli "wyczyść" zawiera mnóstwo martwego kodu w pliku, to tak. Ale masz rację, dobre rzeczy też tam są pochowane. –
Pewnie, że tak. Przejdź do pliku .m, w którym masz właściwość @synthesized
, a następnie z menu Build wybierz "Show Assembly Code". Kompilator wygodnie wkłada się rzeczy jak:
.align 4, 0x90
"-[Foo setStr:]":
Leh_func_begin2:
Lfunc_begin2:
....
I
.align 4, 0x90
"-[Foo answer]":
Leh_func_begin3:
Lfunc_begin3:
....
Och, chciałeś kod Objective-C? Niestety, robi to kompilator, a kompilator czyta Objective-C, ale pisze w Assembly.
- 1. Zasady qmake dla wygenerowanego kodu
- 2. suppress ostrzeżenie dla wygenerowanego kodu C#
- 3. Wyświetlanie wygenerowane przez bajt kodu bajtowego
- 4. Przekazywanie funkcji JS do wygenerowanego przez Emscripten kodu
- 5. Jak zmusić AngularJS do kompilacji kodu wygenerowanego przez dyrektywę?
- 6. Wyświetlanie kodu źródłowego Gem
- 7. Jak uciec ciąg znaków dla wygenerowanego C++?
- 8. Wyświetlanie rozszerzonego kodu kompilatora - C++
- 9. Wyświetlanie kodu HTML na winformie
- 10. Użyj funkcji DLR do uruchomienia kodu wygenerowanego za pomocą CompileAssemblyFromSource?
- 11. zapobiec niepotrzebny krzyż łączy w zapytaniu rachubę wygenerowanego kodu SQL
- 12. Okno dialogowe błędu wyświetlane podczas otwierania pliku programu Excel wygenerowanego za pomocą programu EPPlus
- 13. Konstruktor GUI IntelliJ IDEA - bez wygenerowanego kodu Java
- 14. Jak skonfigurować miejsce docelowe wygenerowanego kodu w IntelliJ?
- 15. Wyświetlanie HTML Divs przez Silverlight
- 16. MVC3 Razor: Wyświetlanie html wewnątrz bloków kodu
- 17. Wyświetlanie kodu źródłowego JSP zamiast wykonywania
- 18. Jak słuchać powiększenia wygenerowanego przez użytkownika w Google Maps?
- 19. Jak usunąć oś Y z obrazu wygenerowanego przez Pylab?
- 20. Uzyskiwanie dostępu do wyniku parser wygenerowanego przez golang yacc
- 21. Pobierz PTS z surowego H264 mdat wygenerowanego przez iOS AVAssetWriter
- 22. Jak zrobić emacs Semantyczne użycie pliku TAG wygenerowanego przez GTAGS
- 23. Analizator kodu HTML, taki jak firebug, dla programu Outlook
- 24. Wyświetlanie tekstu poniżej wykresu generowanego przez ggplot2
- 25. Czy jest możliwa zmiana wygenerowanego automatycznie kodu obsługi zdarzeń w visual studio?
- 26. Wyświetlanie formularza użytkownika programu Excel jako przycisku na pasku zadań
- 27. Stosując UIDocumentInteractionController wyświetlanie presentPreviewAnimated: przez UIWebView
- 28. Jak zapewnić dodatkowe niestandardowe wdrożenie metod dostępu podczas używania @synthesize?
- 29. Włącz brakujące ostrzeżenie @synthesize w Xcode 4.4
- 30. Objective-C jest @synthesize wymagane lub opcjonalne?
Czy mogę zapytać, dlaczego tego chcesz? –
Soitanly. Chociaż mogłem się czegoś nauczyć od oglądania tego kodu. – cfischer
Powiązane: http://stackoverflow.com/a/589348/412916 http://stackoverflow.com/questions/917884/ http://cocoawithlove.com/2009/10/memory-and-thread-safe-custom- property.html – Jano