Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Getting Camera Roll with Photos.framework
PHFetchResult *result = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum
subtype:PHAssetCollectionSubtypeSmartAlbumUserLibrary
options:nil];
PHAssetCollection *assetCollection = result.firstObject;
NSLog(@"%@", assetCollection.localizedTitle);
// Camera Roll
@mashers
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.

@dodikk
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?
    {
        // https://gist.github.com/Koze/f8b3adf542c5dae6e9cf
        //
        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
    }

@Abhishek9634
Copy link

Abhishek9634 commented Jun 25, 2017

Hello Is there any way to get all albums ?

@johnmurphy01
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?

@akultomar17
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

<key>NSPhotoLibraryUsageDescription</key>
<string>My description about why I need this capability</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<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