2017-09-28 118 views
1

当我尝试确定用户是否有权打开相册时,xcode告诉我这不起作用。在iOS11中,您无法通过“ALAssetsLibrary”或“PHPhotoLibrary”命令获得许可

let authStatus = ALAssetsLibrary.authorizationStatus() 
return authStatus != .restricted && authStatus != .denied 

的Xcode提醒我

“悬而未决标识的使用“ALAssetsLibrary”

xcode screenshot

当我尝试使用 'PHPhotoLibrary' 上的AppDelegate

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
    // Override point for customization after application launch. 


    switch PHPhotoLibrary.authorizationStatus() { 
    case PHAuthorizationStatus.NotDetermined: // 用户暂未权限认证 
     print("PHAuthorizationStatus.NotDetermined") 
     // 权限认证 
     PHPhotoLibrary.requestAuthorization { (status:PHAuthorizationStatus) -> Void in 
      print(status) 
     } 
    case PHAuthorizationStatus.Restricted: // APP禁止使用相册权限认证 
     print("PHAuthorizationStatus.Restricted") 
    case PHAuthorizationStatus.Denied: // 用户拒绝使用相册 
     print("PHAuthorizationStatus.Denied") 
     print("请进入 设置 -> 隐私 -> 相册 开启权限") 
    // 设置-隐私-相册 
    case PHAuthorizationStatus.Authorized: // 用户允许使用相册 
     print("PHAuthorizationStatus.Authorized") 
    } 


    return true 
} 

的Xcode还告诉我

使用未解决的标识符“PHPhotoLibrary”

+0

已弃用,请使用'PHPhotoLibrary'替代。 – WeiJay

+0

@WeiJay谢谢你,我用你的方法来解决当前的问题! – Yizhe

回答

1

好吧,我已经意识到,答案是什么,添加“导入照片”的快捷文件的一切后,顶部是正常的

“PHPhotoLibrary”在以下方面正确使用。

func AlbumPermissions() -> Int {//相册权限判断器 
switch PHPhotoLibrary.authorizationStatus() { 

case .notDetermined:// 用户暂未权限认证 
    print("PHAuthorizationStatus.NotDetermined") 
    // 权限认证 
    PHPhotoLibrary.requestAuthorization { (status:PHAuthorizationStatus) -> Void in 
     print(status) 
    } 

    return 0 
case .restricted:// APP禁止使用相册权限认证 
    print("PHAuthorizationStatus.Restricted") 
    return 1 
case .denied:// 用户拒绝使用相册 
    print("PHAuthorizationStatus.Denied") 
    print("请进入 设置 -> 隐私 -> 相册 开启权限") 
    return 2 
case .authorized: // 用户允许使用相册 
    print("PHAuthorizationStatus.Authorized") 
    return 3 
}} 
+0

顺便说一句,你可以为你的函数返回'PHPhotoLibrary.authorizationStatus()'。 (如果需要) – WeiJay

+0

@WeiJay是的,这是一个很好的建议。 – Yizhe

+0

'导入照片'保存了我的一天。 –