Objective c 在运行代码之前,等待用户对允许位置服务的响应
我有以下代码来调用location services,从而引发权限警报,我希望在它们允许或拒绝时显示视图时运行我的代码 在我的viewDidLoad方法中,我的代码如下所示,但尽管这在他们第二次加载应用程序时起作用,但在他们做出选择后,两个选项都不会在第一次运行。从本质上说,有没有办法让这段代码等待,让它只在他们做出选择后运行Objective c 在运行代码之前,等待用户对允许位置服务的响应,objective-c,cllocationmanager,Objective C,Cllocationmanager,我有以下代码来调用location services,从而引发权限警报,我希望在它们允许或拒绝时显示视图时运行我的代码 在我的viewDidLoad方法中,我的代码如下所示,但尽管这在他们第二次加载应用程序时起作用,但在他们做出选择后,两个选项都不会在第一次运行。从本质上说,有没有办法让这段代码等待,让它只在他们做出选择后运行 CLLocationCoordinate2D coordinate = [self getLocation]; if ([CLLocationManager author
CLLocationCoordinate2D coordinate = [self getLocation];
if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized)
{
NSLog(@"location enabled");
[self getDataFromJson];
} else {
NSLog(@"location disabled");
//show them a view telling them to allow location services
}
您应该分配一个符合CLLocationManagerDelegate协议的委托,并通过实现locationManager:didChangeAuthorizationStatus:来响应授权状态的更改。您应该分配一个符合CLLocationManagerDelegate协议的委托,并通过以下方式响应授权状态的更改:实现locationManager:didChangeAuthorizationStatus:否,您不想让此代码等待。。事实上,您永远不想在viewDidLoad或主线程上的任何位置执行任何操作,因为这需要等待。而是按照NSBurn讨论的方式实现,查看那里的状态,相应地更新UI。不,您不想让此代码等待。。事实上,您永远不想在viewDidLoad或主线程上的任何位置执行任何操作,因为这需要等待。而是按照NSBurn讨论的方式实现,查看那里的状态,相应地更新UI。