在iOS 4中不推荐使用CLLocationmanager“locationServicesEnabled”方法吗?

时间:2011-08-23 04:04:16

标签: iphone ios cllocationmanager ios4

我知道在iOS 4中不推荐使用属性locationServicesEnabled。相反,我应该调用locationServicesEnabled

在我的app委托方法

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //Some Code Here...
    CLLocationManager *manager = [[CLLocationManager alloc] init];
    if (![manager locationServicesEnabled])
    {   //show an alert
    }
 }   

我调用了这个方法,然而,Xcode向我显示了一个警告“locationServicesEnabled已被弃用”。谁知道如何解决这个问题?由于该警告,如果我在系统首选项中关闭了位置服务,则无法显示警报视图。

谢谢!

4 个答案:

答案 0 :(得分:52)

来自文档:

  

locationServicesEnabled:一个布尔值,指示是否位置   设备上启用了服务。 (只读)(在iOS中弃用    的 4.0。请改用locationServicesEnabled类方法。)

因此,您应使用[manager locationServicesEnabled]

代替[CLLocationManager locationServicesEnabled]

答案 1 :(得分:12)

如果您只想知道您的应用程序是否有使用GPS的权利,您需要检查 [CLLocationManager authorizationStatus]

您可以在CLLocationManager类参考中看到此类方法。

http://developer.apple.com/library/ios/#DOCUMENTATION/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html

答案 2 :(得分:0)

如果您正在开发适用于iOS 4或更高版本的应用,您可以/评论/或删除如下:

- (BOOL)isLocationServicesEnabled
{
    BOOL locationServicesEnabledClassPropertyAvailable = [CLLocationManager respondsToSelector:@selector(locationServicesEnabled)];// iOS 4.x
    if (locationServicesEnabledClassPropertyAvailable) { // iOS 4.x
        return [CLLocationManager locationServicesEnabled];
    } else {
        return NO;
    }
}

答案 3 :(得分:0)

因此,您只需删除car并将其替换为max()已解决的问题...