首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHAsset无法获取

PHAsset无法获取
EN

Stack Overflow用户
提问于 2020-05-19 18:02:00
回答 1查看 1.6K关注 0票数 0

我试图从iOS应用程序中的照片库中获取照片。我正在使用Photos框架。但是,我在尝试这样做的时候遇到了一个错误,即使我只是在获得授权时才这样做:

核心“从守护进程返回的错误: Domain=com.apple.accounts Code=7 "(null)"”

获取资产的代码如下所示:

代码语言:javascript
复制
    func requestAuthorization() {
        PHPhotoLibrary.requestAuthorization { [weak self] (status) in
            guard let self = self else { return }
            switch status {
            case .authorized:
                self.getAllPhotos()
            case .denied:
                break
            case .notDetermined:
                break
            case .restricted:
                break
            @unknown default:
                break
            }
        }
    }

    private func getAllPhotos() {
        let assets: PHFetchResult = PHAsset.fetchAssets(with: .image, options: nil)
        // rest of the codebase
    }
EN

回答 1

Stack Overflow用户

发布于 2020-05-19 19:13:32

你好,下面是工作代码的示例:

代码语言:javascript
复制
      public enum FetchResults {
        case success(response: [PHAsset])
        case error(error: Error)
    }

    public static func fetch(_ completion: @escaping (FetchResults) -> Void) {
        guard PHPhotoLibrary.authorizationStatus() == .authorized else {
            let error: NSError = NSError(domain: "PhotoLibrary Error", code: 1, userInfo: [NSLocalizedDescriptionKey: "No PhotoLibrary Access"])
            completion(FetchResults.error(error: error))
            return
        }

        DispatchQueue.global(qos: .userInitiated).async {
            let fetchResult = PHAsset.fetchAssets(with: .image, options: PHFetchOptions())

            if fetchResult.count > 0 {
                var assets = [PHAsset]()
                fetchResult.enumerateObjects { object, _, _ in
                    assets.insert(object, at: 0)
                }

                DispatchQueue.main.async {
                    completion(FetchResults.success(response: assets))
                }
            }
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61897733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档