badaliśmy to przez pewien czas i nie jestem do końca pewien, co robić.
Chcę umożliwić użytkownikom włączanie i wyłączanie trybu debugowania. W trybie debugowania NSLogs będą drukowane na konsoli.
obecnie mogę włączyć lub wyłączyć tryb debugowania w ustawieniach kompilacji przy użyciu preprocesora (DEBUG) i używam następującego kodu do "blokowania" NSLogów.
#ifdef DEBUG
NSLog(@"If you can see this then debug is on");
#endif
Stworzyłem przełącznik na stronie ustawień, aby uzyskać dane wejściowe od użytkownika, ale nie wiem, jak użyć tego wejścia, aby następnie niezdefiniować / przedefiniować DEBUG. Jakieś pomysły?
Nie jestem pewien, czy jest to nawet możliwe, więc wszelkie alternatywne rozwiązania również zostałyby docenione.
Wielkie dzięki :)
Odpowiedzi:
5 dla odpowiedzi № 1Nie powinieneś używać dyrektyw preprocesora: używanie #ifdef DEBUG
oznacza, że jeśli DEBUG
nie jest zdefiniowany, ten fragment kodu w ogóle się nie kompiluje.
Zamiast tego należy zastąpić dyrektywy preprocesora prostą instrukcją if sprawdzającą zmienną globalną (lub przynajmniej taką, która może być rozwiązaniem).
0 dla odpowiedzi nr 2
Wierzę, że twój blok kodu sprawdzałby tylko, czy budujesz do debugowania lub wydania i czy odpowiednio zbudujesz.
Możesz zbudować go na urządzeniu, które będzie w trybie zwolnienia, nie sądzę, że możliwe jest uruchomienie symulatora w trybie zwolnienia w przeciwnym razie.
Może ręczne budowanie aplikacji na symulator i przenoszenie spakowanego pliku do uruchomienia tylko na symulatorze bez uruchamiania kodu Xcode, ale nie będzie to rozsądne, jak sądzę.