2014-09-18 11 views
8

Jak niektórzy z was mogą być świadomi, kiedy działający w trybie Debug-Mode, jego szybkość może być strasznie powolna. Czy istnieje sposób, w jaki mogę wydrukować wiadomość w kodzie lub GUI, aby dać mi znać, jeśli jakoś zapomniałem skompilować ją poprawnie. Pracuję w trybie mieszanym, więc jeśli ktoś może dać mi kod Objc i Swift, będzie super.Jak rozpoznać, czy Swift został skompilowany z Optymalizacją

Dzięki!

+1

Porównaj http://stackoverflow.com/questions/24003291/ifdef-replacement-in-swift-language. –

Odpowiedz

10

Nie sądzę, można wykryć w czasie wykonywania, ale można użyć makra DEBUG preprocesora (w Objective-C), który jest zdefiniowany w konfiguracji Debug domyślnie:

#ifdef DEBUG 
NSLog(@"I'm in debug mode!"); 
#endif 

ten zakłada, że ​​nie kompilacji bez optymalizacji w konfiguracji Release :-)

Jeśli chcesz sprawdzić, czy w Swift, trzeba zdefiniować Build Configuration dodając -D DEBUG „innych Swift Flags” do configu Debug racja tylko w ustawieniach kompilacji. Następnie można sprawdzić na tej konfiguracji, jeśli #if:

#if DEBUG 
println("I'm in debug mode!") 
#endif 
+0

A więc teraz w czasie wykonywania, aby dowiedzieć się, jaki poziom optymalizacji został użyty? – Jeef

+1

@jeef użyj tej techniki, aby ustawić flagę, a następnie możesz sprawdzić flagę w czasie wykonywania –

+0

Jeśli ktoś zastanawia się, dlaczego te flagi nie działają, upewnij się, że Xcode pokazuje je w kolejności @j, podałeś je tutaj -D DEBUG. Jeśli Xcode pokazuje DEBUG -D, to nie zadziała. – zumzum

0

Można użyć schematów Xcode, aby dodać flagę jako argument lub w zmiennych środowiskowych - można wtedy sprawdzić go za pomocą NSProcessInfo - albo -arguments lub -environment .

W Xcode, przejdź do Product> Scheme> Edit Scheme na pasku menu, wybierz Run i pod zakładką Argumenty dodaj argument lub zmienną środowiskową.

Powiązane problemy