与我正在做的事情相比,有没有更聪明/更合适的方法?我创建了一本字典,并通过查看每个获取的资产继续枚举和填写年/月/日。
let assetFetchResult = PHAsset.fetchAssetsInAssetCollection(album, options: assetFetchOptions)
if assetFetchResult.count > 0 {
var fetchedAssets = [String:[String:[String:[PHAsset]]]]()
//[year[month[date:arrayOfPhotos]]]
assetFetchResult.enumerateObjectsUsingBlock({
object, index, stop in
let asset:PHAsset = object as! PHAsset
let dateComponents = NSCalendar.currentCalendar().components(.CalendarUnitDay | .CalendarUnitMonth | .CalendarUnitYear, fromDate: asset.creationDate)
//year group creation
if fetchedAssets["\(dateComponents.year)"] == nil {
fetchedAssets["\(dateComponents.year)"] = [String:[String:[PHAsset]]]()
}
//monthly group creation
if fetchedAssets["\(dateComponents.year)"]!["\(dateComponents.month)"] == nil {
fetchedAssets["\(dateComponents.year)"]!["\(dateComponents.month)"] = [String:[PHAsset]]()
}
//daily group creation
if fetchedAssets["\(dateComponents.year)"]!["\(dateComponents.month)"]!["\(dateComponents.day)"] == nil {
fetchedAssets["\(dateComponents.year)"]!["\(dateComponents.month)"]!["\(dateComponents.day)"] = [PHAsset]()
}
fetchedAssets["\(dateComponents.year)"]!["\(dateComponents.month)"]!["\(dateComponents.day)"]?.append(asset)
})
println(fetchedAssets)
return fetchedAssets
}