为啥 applicationState 被返回为零?

Posted

技术标签:

【中文标题】为啥 applicationState 被返回为零?【英文标题】:Why is applicationState being returned as nil?为什么 applicationState 被返回为零? 【发布时间】:2013-02-08 07:32:38 【问题描述】:

我正在尝试检查我的 ios 应用程序的应用程序状态,但是当我检查时

[UIApplication sharedApplication].applicationState

我是零。我检查了 [UIApplication sharedApplication] 不为零。我基本上只是检查屏幕是否打开,所以我只是检查以下结果:

[UIApplication sharedApplication].applicationState == UIApplicationStateActive

知道为什么我的返回值为 nil 吗?

【问题讨论】:

UIApplicationStateenum 所以 nil 没有意义。 也许你把UIApplicationStateActive(值0)和nil混淆了? @***foe 我正在调试,在 'UIApplicationState *applicationState = [UIApplication sharedApplication].applicationState;' 行之后我查询 'po applicationState' 并得到 '$4 = 0x00000000 ' UIApplicationState 不是一个类;这是一个枚举。 UIApplicationStateActive == 0,所以这是有道理的。 【参考方案1】:

好的,你的代码不正确(我很惊讶它编译了):

UIApplicationState *applicationState = [UIApplication sharedApplication].applicationState;

应该是:

UIApplicationState applicationState = [UIApplication sharedApplication].applicationState;

(这是一个enum 不是一个对象)。

【讨论】:

谢谢,我对 Objective-C 枚举有点不熟悉。 @ferson2020 是的,判断对象是否被返回或enumtypedef 的唯一方法是查找指针运算符 (*)。

以上是关于为啥 applicationState 被返回为零?的主要内容,如果未能解决你的问题,请参考以下文章

为啥除了纬度和经度之外的所有内容的 JSON 都返回为零?

didUpdateToLocation 调用了两次,好的。为啥 oldLocation 两次都为零?

为啥起始位置为零的子字符串不会在 SQL 中引发错误?

为啥当我重载数组运算符时我的私有变量为零? [关闭]

applicationState 是 UIApplicationStateInactive 在 application:didReceiveRemoteNotification:fetchComple

为啥 ubiquityIdentityToken 总是为零?