Pracuję nad uniwersalną aplikacją na iOS i chciałbym widzieć surowy kod SQL w dziennikach podczas debugowania. W tym poście na blogu znajduje się kilka informacji o tym, jak włączyć rejestrowanie surowego kodu SQL na potrzeby tworzenia podstawowych danych systemu iOS. Podany przykład dotyczy Xcode 3 i po prostu nie jest dla mnie jasne, jak włączyć to w Xcode 4.
Wypróbowałem „Produkt” -> „Edytuj schemat” i dodałem „ -com.apple.CoreData.SQLDebug 1 ” do „Argumenty przekazane przy uruchomieniu”, ale nadal nie widzę żadnych danych wyjściowych w dziennikach. Nie jestem pewien, czy szukam w złym miejscu, czy po prostu niepoprawnie przekazuję argumenty.
Odpowiedzi:
Powinieneś patrzeć w to samo miejsce, w którym otrzymujesz NSLOGS
I powinieneś przejść do Product -> Edit Scheme -> Następnie z lewego panelu wybierz Run YOURAPP.app i przejdź do zakładki Arguments w panelu głównym.
Tam możesz dodać argument przekazany przy uruchomieniu.
Należy dodać
-com.apple.CoreData.SQLDebug 4
(liczba od 1 do 4, wyższa liczba sprawia, że jest bardziej szczegółowe)Naciśnij OK i gotowe.
Kluczem jest tutaj edycja schematu, którego będziesz używać do testowania.
źródło
UPDATE ZTABLE SET ZCOLUMN = ? WHERE ZID = ?
i nie jest zbyt przydatne, aby naprawdę zobaczyć, jakie dane są wysyłaneXCode 4
Jest w tym samym miejscu, w którym zarządzam moim NSZombieEnabled
Produkt -> Edytuj schemat -> Uruchom debugowanie YouApp.app
W sekcji „Argumenty przekazywane przy uruchomieniu” wklej dokładnie:
-com.apple.CoreData.SQLDebug 1
Ostrzeżenie - te rzeczy są bardzo rozwlekłe, jeśli masz problemy z podstawowymi danymi, warto się temu przyjrzeć, ale może to być również więcej informacji niż potrzebujesz o niewłaściwej rzeczy.
źródło
Miałem z tym problem, a potem zdałem sobie sprawę, że to głupie pominięcie, które, jak sądzę, jest dla niektórych z was przyszłym błędem. Kiedy wprowadziłem argument
Xcode (4.3.1)
, pominąłem wiodący myślnik. Nie zrobiłbym tego, gdybym wprowadzał to w wierszu poleceń, ale w GUI go pominąłem. Nie znalazłem żadnej różnicy między wejściem w 2 oddzielnych argumentach lub jednym (jak sugerowały niektóre posty). Więc użyj:-com.apple.CoreData.SQLDebug 1
a nie tylko:
com.apple.CoreData.SQLDebug 1
który działał dla mnie zarówno w symulatorze, jak i rzeczywistym urządzeniu
źródło
Zauważ, że możesz ustawić różne poziomy przekazywanej wartości. Które zapewniają coraz więcej gadatliwości.
źródło