更新:从某些版本的iOS 8(可能是8.3)开始,即使在飞行模式下也可以打开GPS硬件(即,即使在飞行模式下也可以获得GPS定位).这使得这个问题没有实际意义.
-
是否有可能以编程方式确定iPhone是否处于飞行模式?我特别想知道它是否处于AirPlane模式,而不是拥有(或没有)网络连接.这个问题已经被问了很多,但我看到的每个答案都提到了Apple的Reachability代码来确定网络连接是否可用.
我正在编写一款使用iPhone GPS的应用程序.目前,如果启用了飞行模式并启动了我的应用程序,我的位置管理器对象仍然显示存在并且仍然显示为我提供了一个(缓存?)位置.状态栏中会显示小GPS图标,告诉我我的应用正在确定位置.

我想知道手机是否处于飞行模式,以便我无法初始化位置管理器对象,我可以更改我的UI以向用户指示GPS功能不可用.
显然,无论网络连接如何,都可以使用GPS功能,因此缺乏网络连接使我成为飞机模式的不良代理.在飞行模式下,我似乎没有得到任何特定的错误(通过locationManager:didFailWithError),只是我假设的一般错误可能来自多个来源.
一个简单的问题最好用两行代码询问:
CGFloat answer = (abs(-27.460757f) - 9.0f) * (800.0f / (46.0f - 9.0f));
NSLog(@"According to my calculator, answer should be 399.15, but instead it is: %f", answer);
Run Code Online (Sandbox Code Playgroud)
当我在Xcode中运行它(特别是在iPhone模拟器中)时,我得到:
根据我的计算器,答案应该是399.15,但它是:389.189209
这是因为我对浮标的四舍五入缺乏了解吗?
谢谢!
斯图尔特