我有一个使用Xcode 5制作的项目。我有一个ViewController,我使用CLLocationManager获取手机位置。我已经实施了两个:
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
效果很好。
现在我用Xcode 6 GM打开了这个项目,这两个方法都没有被调用(不在模拟器或设备上)。
有什么想法吗? 感谢
答案 0 :(得分:6)
请检查主题here
你必须要处理两件事
1
requestAlwaysAuthorization
- 用于背景位置
[self.locationManager requestWhenInUseAuthorization];
,或
requestWhenInUseAuthorization
- 仅在应用处于有效状态时的位置
[self.locationManager requestAlwaysAuthorization];
如果您没有同时发出两个请求,iOS将忽略startUpdateLocation请求。
2。
在Info.plist中包含NSLocationAlwaysUsageDescription
或NSLocationWhenInUseUsageDescription
键,具体取决于您要求的权限。这个字符串将由iOS显示给用户,这样用户就可以了解为什么我们的应用需要获得许可。
希望这有帮助。