Создание подклассов UIWindow - нужна помощь препроцессора - PullRequest
1 голос
/ 22 июля 2011

Да, я знаю, что субклассирование UIWindow вызывает недовольство, но мое субклассированное UIWindow предназначено только для целей отладки (он снимает скриншот текущей страницы после обнаружения определенного события движения).

В любом случае, ясделал собственный флаг прекомпилятора под названием DEBUG в настройках моего проекта 1005 *, но у меня возникли проблемы с его загрузкой / работой.Прямо сейчас, это не снимок экрана, а регистрация события движения.

Вот код, который у меня есть в AppDelegate's didFinishLaunchingWithOptions:

#if DEBUG
    DebugWindow *debugWindow = [[DebugWindow alloc] init];
    self.window = debugWindow; //'window' is declared in the AppDelegate's @interface file and synthesized as window=_window in the @implementation file  
#else
    self.window = _window;
#endif

    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];

1 Ответ

0 голосов
/ 23 июля 2011

Вот как использовать флаг отладки

#if DEBUG == 1
#define CMLog(format, ...) NSLog(@"%s:%@", __PRETTY_FUNCTION__,[NSString stringWithFormat:format, ## __VA_ARGS__]);
#define MARK    CMLog(@"%s", __PRETTY_FUNCTION__);
#define START_TIMER NSTimeInterval start = [NSDate timeIntervalSinceReferenceDate];
#define END_TIMER(msg)  NSTimeInterval stop = [NSDate timeIntervalSinceReferenceDate]; CMLog([NSString stringWithFormat:@"%@ Time = %f", msg, stop-start]);
#else
#define CMLog(format, ...)
#define MARK
#define START_TIMER
#define END_TIMER(msg)
#endif

А вот и скриншот

enter image description here

Также в настройках релиза установите флаг на 0 Нравитсяthis -DDEBUG = 0

Таким образом, вы можете достичь того, чего хотите достичь. Дайте мне знать, помогает это или нет.

...