为啥 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 吗?
【问题讨论】:
UIApplicationState
是 enum
所以 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 是的,判断对象是否被返回或enum
或typedef
的唯一方法是查找指针运算符 (*
)。以上是关于为啥 applicationState 被返回为零?的主要内容,如果未能解决你的问题,请参考以下文章
didUpdateToLocation 调用了两次,好的。为啥 oldLocation 两次都为零?
applicationState 是 UIApplicationStateInactive 在 application:didReceiveRemoteNotification:fetchComple