【发布时间】:2018-03-27 21:09:06
【问题描述】:
我正在尝试向 PHFetchResult 添加一个扩展,以将结果对象作为正确类型的数组拉出 - 到目前为止,我无法弄清楚如何避免下面看到的复制。除了类型约束之外,以下扩展是相同的。如果我使用 PHObject 作为约束,它会起作用,但结果需要转换为更具体的类型......
extension PHFetchResult where ObjectType == PHAsset {
var objects: [ObjectType] {
var _objects: [ObjectType] = []
enumerateObjects { (object, _, _) in
_objects.append(object)
}
return _objects
}
}
extension PHFetchResult where ObjectType == PHCollection {
var objects: [ObjectType] {
var _objects: [ObjectType] = []
enumerateObjects { (object, _, _) in
_objects.append(object)
}
return _objects
}
}
extension PHFetchResult where ObjectType == PHAssetCollection {
var objects: [ObjectType] {
var _objects: [ObjectType] = []
enumerateObjects { (object, _, _) in
_objects.append(object)
}
return _objects
}
}
【问题讨论】:
标签: swift generics swift4 extension-methods phphotolibrary