Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Getting Camera Roll with Photos.framework
PHFetchResult *result = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum
PHAssetCollection *assetCollection = result.firstObject;
NSLog(@"%@", assetCollection.localizedTitle);
// Camera Roll
Copy link

mashers commented Apr 13, 2017

Thank you for this. Something which should be so simple ended up being utterly obtuse, but this worked perfectly.

Copy link

dodikk commented May 19, 2017

I'm getting a assetCollection == nil on iPad mini iOS 10.3.1

(lldb) po query
<PHUnauthorizedFetchResult: 0x170135c20> count=0
    private static func getCameraRollAlbum() -> PHAssetCollection?
        let query = PHAssetCollection.fetchAssetCollections(with: .smartAlbum,
                                                         subtype: .smartAlbumUserLibrary,
                                                         options: nil)
        let result: PHAssetCollection? = query.firstObject
        print("[nmessenger] [debug] camera roll name" + (result?.localizedTitle ?? ""))
        return result

Copy link

Abhishek9634 commented Jun 25, 2017

Hello Is there any way to get all albums ?

Copy link

johnmurphy01 commented Oct 6, 2017

If iCloud is turned on, Camera Roll is not returned by this method. It instead returns All Photos. Is there any way to get Camera Roll asset collection when iCloud is turned on?

Copy link

akultomar17 commented Feb 3, 2018

pretty late for @dodikk I guess but anyone else getting assetCollection == nil needs to add permissions in their info.plist

<string>My description about why I need this capability</string>
<string>This app requires access to the photo library.</string>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment