這是一個位置應用程序。當我第一次在iPhone上運行應用程序時,一個警告窗口詢問我是否想允許定位服務。選擇好後或不允許我可以點擊一個設置的按鈕來顯示我的當前位置。該按鈕還設置爲將一個NSLog打印到控制檯,其值爲一個名爲「locationServicesEnabled」的BOOL函數,如果它們是,則返回yes/1,否則返回0。當NSLog使用BOOL方法返回false時,BOOL方法返回true
我的問題是,當我選擇不允許選項,並且我按下按鈕時,NSLog仍然將值1打印到不正確的控制檯。它應該是0或false。連接到我的按鈕文字標籤,甚至說:「你的位置是空」,但由於某些原因的NSLog始終顯示的1
這裏是我的ViewController.m代碼BOOL值:
#import "ViewController.h"
#import <CoreLocation/CoreLocation.h>
@interface ViewController() <CLLocationManagerDelegate>
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.gpsLM = [[CLLocationManager alloc]init];
[self.gpsLM startUpdatingLocation];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
}
-(IBAction)gpsButton{
CLLocation * currentLocation = self.gpsLM.location;
self.gpsLabel.text = [NSString stringWithFormat:@"Your Location is %@", currentLocation];
NSLog(@"Location services enabled: %hhd",[CLLocationManager locationServicesEnabled]);
}
@end
謝謝!這就是訣竅,它正在顯示正確的值。 – user3117509