【问题标题】: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混淆了?
  • @trojanfoe 我正在调试,在 'UIApplicationState *applicationState = [UIApplication sharedApplication].applicationState;' 行之后我查询 'po applicationState' 并得到 '$4 = 0x00000000 '
  • UIApplicationState 不是一个类;这是一个枚举。 UIApplicationStateActive == 0,所以这是有道理的。

标签: ios objective-c application-state


【解决方案1】:

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

UIApplicationState *applicationState = [UIApplication sharedApplication].applicationState;

应该是:

UIApplicationState applicationState = [UIApplication sharedApplication].applicationState;

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

【讨论】:

  • 谢谢,我对 Objective-C 枚举有点不熟悉。
  • @ferson2020 是的,判断对象是否被返回或enum 或typedef 的唯一方法是查找指针运算符 (*)。
猜你喜欢
  • 2014-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多