加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift3 – swift 3,PHFetchResult.enumerateObjects错误

发布时间:2020-12-14 05:28:15 所属栏目:百科 来源:网络整理
导读:在 swift 3中,该方法向我展示了“模糊地使用’enumerateObjects’”,发生了什么.我该怎么办? extension PHFetchResult {public func assetCollection() - [PHAssetCollection] { var list :[PHAssetCollection] = [] self.enumerateObjects { (object,index
在 swift 3中,该方法向我展示了“模糊地使用’enumerateObjects’”,发生了什么.我该怎么办?
extension PHFetchResult {
public func assetCollection() -> [PHAssetCollection] {
    var list :[PHAssetCollection] = []
    self.enumerateObjects { (object,index,stop) in
        if object is PHAssetCollection {
            let collection = object as! PHAssetCollection
            list.append(collection)
        }
    }
    return list
}
}
做类似这样的事.您不能直接为PHFetchResult添加扩展名,因为它有其他ObjectType作为其通用参数PHFetchResult< ObjectType> .所以你必须做点别的事.
class FetchPhoto {

    class func assetCollection() -> [PHAssetCollection] {
        var list :[PHAssetCollection] = []

        PHAssetCollection.fetchMoments(with: nil).enumerateObjects(EnumerationOptions.concurrent) { (collection,_,_) in
                list.append(collection)
        }

        return list
    }
}

PHAssetCollection.fetchMoments返回PHFetchResult< PHAssetCollection>这里PHAssetCollection是PHFetchResult的ObjectType.您收到了模糊错误,因为您尚未指定objectType.

解决这个问题的一般方法.

class FetchPhoto {

    class func assetCollection<T : PHObject>(result : PHFetchResult<T>) -> [T] {

        var list : [T] = []

        result.enumerateObjects(EnumerationOptions.concurrent) { (object,_) in
            list.append(object)
        }

        return list
    }
}

斯威夫特3

class PhotosHelper {

        class func fetchAllLocalIdentifiersOfPhotos(completion : (_ localIdentifiers : [String]) -> ()) {

            let photos : PHFetchResult<PHAsset> = PHAsset.fetchAssets(with: PHAssetMediaType.image,options: nil)
            photos.enumerateObjects ({ _,_ in

// Do your operations,you can see that there is no warnings/errors in this one
            })

        }
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读