0

我在我的应用程序中使用了台风框架。我的应用程序运行良好。现在我想在我的应用中定位更新。我添加了 Location 框架并实现了代码。但是我的 CLLocationManger 委托方法不起作用。

我在演示应用程序中复制了相同的代码,女巫没有任何依赖关系,并且相同的代码开始工作,我能够获取位置更新。

有谁可以告诉我这种行为的可能原因是什么。

这是我正在使用的代码:

在我的 LoginViewController.mi 中,我在 - (void)viewDidLoad 方法中使用了以下代码

if (![CLLocationManager locationServicesEnabled]) {
    [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Location Services Disabled", nil)
                                message:NSLocalizedString(@"You currently have all location services for this device disabled. If you proceed, you will be asked to confirm whether location services should be reenabled.", nil)
                               delegate:nil
                      cancelButtonTitle:NSLocalizedString(@"OK", nil)
                      otherButtonTitles:nil] show];
} else {
    self.locationManager = [[CLLocationManager alloc] init];
    self.locationManager.delegate = self;
    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    [self.locationManager startUpdatingLocation];
}

#pragma mark - CLLocationManagerDelegate
 - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
     {
       NSLog(@"didFailWithError: %@", error);
       UIAlertView *errorAlert = [[UIAlertView alloc]
                           initWithTitle:@"Error" message:@"Failed to Get Your Location" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [errorAlert show];
     }


    - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
         {
            NSLog(@"didUpdateToLocation: %@", newLocation);              
         }
4

2 回答 2

0

不确定 Typhoon,但请确保您对经理保持强烈的参考,以便在课堂的整个生命周期中保持它,当然还要正确分配其代表。

于 2014-04-03T07:29:42.393 回答
0

这听起来与台风无关。我们不知道框架中有任何东西会阻止 CLLocationManager 正常工作。此外,商店中有许多已发布的应用程序正在使用位置服务。事实上,第一个 Typhoon 应用程序使用了定位服务。

位置管理器的一个常见问题是忘记告诉它开始发送更新。请务必执行以下操作:

_locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = self;
_locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[_locationManager startUpdatingLocation];  //This is required!
[_locationManager startUpdatingHeading];   //This is required!

如果你希望你也可以在 Typhoon 中构建一个位置管理器,并注入它,只要调用上述开始更新的步骤即可。

于 2014-04-02T21:14:04.410 回答