Uwielbiam używać debugera Xcode. Możesz spojrzeć na wartość zmiennej, a nawet ją zmienić.
Ale czy mogę w jakiś sposób WYŚWIETLIĆ obraz, do którego odwołuje się zmienna obrazu? Wiem, że widzę jego surowe bajty, ale wyświetlenie okna z jego zawartością byłoby znacznie bardziej przyjazne dla człowieka.
Xcode może tego nie obsługiwać. Może jest jakieś zewnętrzne narzędzie, które pomogłoby w wyświetlaniu obrazów?
EDYTOWAĆ:
Począwszy od Xcode 5, debugger może pokazać wizualną reprezentację zmiennych UIImage / CGImageRef!
Sam Xcode nie może tego zrobić. Nie wiem o narzędziach zewnętrznych.
To, co robię, aby testować obrazy podczas debugowania, to konwertować te surowe dane do formatu pliku obrazu, takiego jak .png, a następnie zapisywać go gdzieś, a następnie otwieram obraz za pomocą dowolnego narzędzia do przeglądania obrazów.
Mam do tego fragment kodu, który zasadniczo wygląda tak:
I właśnie kopiuję i wklejam ten kod, gdzie chcę zobaczyć zawartość obrazu w biegu.
Pamiętaj, aby jak najszybciej pozbyć się tego kodu ze względu na wysoki koszt konwersji
UIImage
doNSData
źródło
Edycja dla Xcode 5: Teraz, gdy najedziesz kursorem na nazwę zmiennej obrazu, po prawej stronie pojawi się ikona „oka”. Po prostu kliknij, aby zobaczyć aktualny obraz!
UWAGA: czasami kończy się to niepowodzeniem w Xcode, nawet jeśli obraz jest poprawny. Jeśli tak się stanie, LUB jeśli nie masz zmiennej UIImage (np. Jest to właściwość innego obiektu, nadal możesz użyć starszej odpowiedzi:
Starsza odpowiedź: Zaczynając od odpowiedzi Abrahama, wypróbowałem kilka eksperymentów dotyczących wyświetlania obrazu iOS z lldb bez konieczności ponownej kompilacji lub dodawania go do widoku. W końcu wymyśliłem:
Trzymam ten ciąg w edytorze tekstu i wklejam go, gdy jest potrzebny. Spowoduje to zapisanie interesującego mnie bieżącego obrazu (w tym przypadku „myImage”) do pliku PNG na pulpicie. Następnie mogę po prostu otworzyć ten plik za pomocą podglądu.
Jeśli pracujesz na urządzeniu z systemem iOS, możesz użyć
Następnie możesz użyć Findera; Wybierz swoje urządzenie; "Pliki"; następnie aplikację deweloperską i skopiuj obraz na pulpit, aby go wyświetlić.
źródło
Jeśli lubisz pracować z konsolą lldb, użyj polecenia dłuta "wizualizuj"
Wskazówka:
po instalacji możesz ustawić warunkowy punkt przerwania po ustawieniu UIImage za pomocą akcji: "visualize myUIImageToShowWithQuickLook"
spowoduje to automatyczne wyświetlenie obrazu po zatrzymaniu debugera.
źródło
A jeśli nie możesz dostać się do obrazu za pomocą widoku zmiennych?
Powtarzając to, co powiedział @pkamb - możesz użyć widoku zmiennych, aby szybko spojrzeć na obraz. Ale co, jeśli nie możesz dostać się do obrazu?
na przykład mam obraz w
(contentViewController.view.subviews[0].subviews[1] as? UIImageView).image
ale jeśli spróbuję rozwinąć
contentViewController
w widoku zmiennej, nie ujawnia moich podwidokówco możesz zrobić, to kliknąć prawym przyciskiem myszy, dodać wyrażenie i wtedy możesz je zobaczyć!
źródło
Możesz umieścić punkt przerwania w wierszu obrazu, a następnie w debugerze po prostu napisz:
po
oznaczaprint object
, jest to polecenie GDB, które wyświetli kilka przydatnych informacji o przekazanym obiekcie, w twoim przypadku o obrazie.źródło