如何在不初始化正确的对象实例的情况下请求对位置,相机,蓝牙等的权限?
我想在应用程序的入职期间要求权限/授权,然后我想在之后初始化int myfun(int *a, int *b)
{
while(some condition)
{
if(condition) return *a + *b;
else
{
some manipulation;
}
}
return -1;
}
等。
我尝试使用谷歌搜索,但未找到任何相关内容。它真的可能吗?
答案 0 :(得分:2)
对于位置访问等权限,我们需要一个管理器实例来显示位置访问提示(请参阅:http://nshipster.com/core-location-in-ios-8/)。这些实例只能用于请求访问(如果您希望它们只请求访问),并且将来如果您想访问资源或数据,我们可以再次使用这些管理器实例。
例如:
CLLocation manager应该用于访问用户的位置,因此在第一个屏幕中,如果您只想询问位置权限,那么可以使用以下代码
CLLocationManager().requestAlwaysAuthorization() //Requesting always permission
如果您想在其他屏幕中访问用户的位置,可以按以下方式访问:
locationManager.startUpdatingLocation() // use delegate methods to handle the values.
所以这些经理只能在申请许可时初始化,然后可以在需要时重新初始化。
以下是一篇关于询问位置权限的最佳方式的文章(同样可以应用于其他类型的权限请求)https://techcrunch.com/2014/04/04/the-right-way-to-ask-users-for-ios-permissions/
答案 1 :(得分:0)
对于每个动作都采用类似的方法
let status = PHPhotoLibrary.authorizationStatus()
switch status {
case .authorized:
case .denied, .restricted :
//handle denied status
case .notDetermined:
// ask for permissions
PHPhotoLibrary.requestAuthorization() { (status) -> Void in
switch status {
case .authorized:
// as above
case .denied, .restricted:
// as above
case .notDetermined: break
// won't happen but still
}
}
}