У меня есть приложение для определения местоположения, которое я пишу, используя метод startMonitoringSignificantLocationChanges, чтобы генерировать обновления, когда это необходимо, но это не работает на старых устройствах, таких как iPhone 3g.
Мне бы хотелось, чтобы функциональность определения местоположения ядра все еще работала, пока устройство открыто, поэтому я подумал, что мог бы использовать тест селектора, чтобы увидеть, поддерживает ли устройство этот метод, и если оно не использует только стандартный метод обновления местоположения ядра. , Хотя этот селектор не работает на моем iphone 3g, он все еще использует startMonitoringSignificantLocationChanges, даже если он не работает на телефоне.
Есть идеи? Я бы предпочел не использовать тесты идентификатора устройства, потому что тогда его придется обновлять для каждого будущего выпуска телефона.
@interface RootViewController : UITableViewController <CLLocationManagerDelegate> {
CLLocationManager *locationManager;
}
@property (nonatomic, retain) CLLocationManager *locationManager;
@implementation RootViewController
@synthesize locationManager;
if([locationManager respondsToSelector:@selector(startMonitoringSignificantLocationChanges)]) {
[locationManager startMonitoringSignificantLocationChanges];
NSLog(@"Using bg updates");
}
else {
[locationManager startUpdatingLocation];
NSLog(@"Using reg updates");
}