在iOS8以後,在使用以前的定位方法的話,程序接收不到應用調用系統服務的提示,須要作一下更改。
在iOS8中,定位的使用有兩種,一種是在使用該應用的時候訪問用戶的位置信息,須要在另一種是容許在並未使用應用程序的時候訪問用戶的位置信息。
代碼以下:
self.locationManager = [[CLLocationManager alloc] init];
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
[self.locationManager requestAlwaysAuthorization];
// 須要在plist文件中添加默認缺省的字段「NSLocationAlwaysUsageDescription」,這個提示是:「容許應用程序在您並未使用該應用程序時訪問您的位置嗎?」NSLocationAlwaysUsageDescription對應的值是告訴用戶使用定位的目的或者是標記。
[self.locationManager requestWhenInUseAuthorization];
// 須要在plist文件中添加默認缺省的字段「NSLocationWhenInUseDescription」,這個時候的提示是:「容許應用程序在您使用該應用程序時訪問您的位置嗎?」
}
self.locationManager.delegate = self;
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
self.locationManager.distanceFilter = 1000.0f;
[self.locationManager startUpdatingLocation];
本地通知:在iOS8以後,以前使用的本地通知的方法,用戶再也不能收到系統提示了,須要在建立本地通知的時候進行註冊,代碼以下:
// 初始化一個本地通知
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
// 設置本地通知的時間
NSDate *fireDate = [NSDate dateWithTimeIntervalSinceNow:10];
/*下面的幾行代碼是須要添加的
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert categories:nil];
[[UIApplication sharedApplication]
registerUserNotificationSettings:settings];
*/
// 註冊通知
[application scheduleLocalNotification:localNotification];