appDelegate中的stopUodatingLocation

时间:2013-05-09 10:40:03

标签: objective-c cllocationmanager cllocation

我在我的应用中使用了位置服务。当用户点击开始按钮时,它也必须在后台运行。当用户在不点击开始按钮的情况下解散应用程序时,必须停止服务。我必须在加载应用程序时启动,因此在点击开始按钮不是一个选项时初始化locationservives。

我正在我的appDelegate.m中尝试这个:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
if([[NSUserDefaults standardUserDefaults] objectForKey:@"appRunning"] == nil) {
    [location stopUpdatingLocation];
    [[NSUserDefaults standardUserDefaults] synchronize];
    NSLog(@"%@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);
}
}

在applicationWillResignActive和applicationDidEnterBackground中。

appDelegate.h中的

是:

#import <UIKit/UIKit.h>
#import "MapKit/Mapkit.h"

@class MainViewController;

@interface AppDelegate : UIResponder <UIApplicationDelegate, MKMapViewDelegate, CLLocationManagerDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) MainViewController *mainViewController;
@property (strong, nonatomic) CLLocationManager *location;
@property (weak, nonatomic) IBOutlet MKMapView *mapView;
@property (nonatomic) BOOL disclaimerAccepted;

@end

当用户在没有点击开始按钮的情况下解散应用程序时,我希望实现该位置服务停止(并且箭头消失)。怎么办呢?

顺便说一下,当NSLog语句在国外时,我可以在两种方法中对这个标志进行NSlog,这样就可以“看到”这样的方法,只是语句不能正常工作(所以看来)

1 个答案:

答案 0 :(得分:0)

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [location stopUpdatingLocation];
}