2013-02-22 3 views
1

Я пытаюсь проверить состояние приложения моего приложения IOS, но когда я проверяюПочему applicationState возвращается как ноль?

[UIApplication sharedApplication].applicationState 

Я получаю ноль. Я проверил, что [UIApplication sharedApplication] не ноль. Я в основном просто проверить, является ли экран включен, так что я просто проверить результат следующих действий:

[UIApplication sharedApplication].applicationState == UIApplicationStateActive 

Любая идея, почему я получаю ноль вернулся?

+0

'UIApplicationState' является' enum', поэтому 'nil' не имеет смысла. – trojanfoe

+1

Возможно, вы сбиваете с толку 'UIApplicationStateActive' (значение' 0') с 'nil'? – trojanfoe

+0

@trojanfoe Я отлаживаю и после строки 'UIApplicationState * applicationState = [UIApplication sharedApplication] .applicationState;' я запрашиваю 'ро applicationState' и получить '$ 4 = 0x00000000 ' – ferson2020

ответ

2

OK код неверный (я удивлен, что это компилируется):

UIApplicationState *applicationState = [UIApplication sharedApplication].applicationState; 

Должно быть:

UIApplicationState applicationState = [UIApplication sharedApplication].applicationState; 

(что это enum не объект).

+0

Спасибо, я немного незнакома с объектами Objective-C. – ferson2020

+0

@ ferson2020 Да, единственный способ узнать, возвращается ли объект, или 'enum' или' typedef' - искать оператор указателя ('*'). – trojanfoe