Skip to content

Instantly share code, notes, and snippets.

@Koze
Last active February 3, 2018 06:26
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Koze/f8b3adf542c5dae6e9cf to your computer and use it in GitHub Desktop.
Save Koze/f8b3adf542c5dae6e9cf to your computer and use it in GitHub Desktop.
Getting Camera Roll with Photos.framework
PHFetchResult *result = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum
subtype:PHAssetCollectionSubtypeSmartAlbumUserLibrary
options:nil];
PHAssetCollection *assetCollection = result.firstObject;
NSLog(@"%@", assetCollection.localizedTitle);
// Camera Roll
@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

Hello Is there any way to get all albums ?

@johnmurphy01
Copy link

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

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