Я пытаюсь написать приложение в iOS для iPhone 4, используя значительное изменение местоположения, которое запускает локальное уведомление каждый раз, когда делегат местоположения получает обновление местоположения. Мой код размещен ниже. Я ухожу из приложения и закрываю его из фона. Пока телефон бодрствует (экран горит), приложение работает хорошо, увольняя уведомления, но когда я убираю телефон (экран черный), я больше не получаю уведомления, пока не разбужу телефон нажав кнопку «домой», получив текст и т. д. Затем уведомление будет запущено. Что мне нужно сделать, чтобы обновления местоположений регистрировались, даже когда устройство спит? Заранее спасибо.iOS Значительное изменение местоположения работает только тогда, когда устройство пробуждено
SigLoc.h
#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
@interface SigLocViewController : UIViewController <CLLocationManagerDelegate> {
CLLocationManager *locationManager;
}
@property (nonatomic, retain) CLLocationManager *locationManager;
@end
SigLoc.m
#import "SigLocViewController.h"
@implementation SigLocViewController
@synthesize locationManager;
- (void)viewDidLoad {
self.locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startMonitoringSignificantLocationChanges];
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
UIApplication *app = [UIApplication sharedApplication];
UILocalNotification *alarm = [[[NSClassFromString(@"UILocalNotification") alloc] init] autorelease];
if (alarm) {
alarm.fireDate = nil;
alarm.repeatInterval = 0;
alarm.alertBody = @"Location Update";
alarm.soundName = UILocalNotificationDefaultSoundName;
alarm.hasAction = NO;
[app presentLocalNotificationNow:alarm];
}
}
Я ученик средней школы, все еще пытающийся получить поддержку программирования, и я не так хорошо знаком с делегатами и передаю обратные вызовы. То, что я пробовал делать, это взять мой код сверху и перенести его в AppDelegate.h и AppDelegate.m, и я все еще испытывал те же проблемы. Каков правильный способ этого или где я могу найти хороший учебник о том, как передать эти обратные вызовы? – videoadventures