Question: when I launch a photos fetch like:

```
let assetCollections: PHFetchResult = PHAssetCollection.fetchAssetCollectionsWithType(.SmartAlbum, subtype: .Any, options: nil) 

```

I get a result of several albums, so I can iterate through the array and put their titles in a tableView.

BUT: when I use a predicate to filter and get for example the album "Camera Roll", the result is always an empty array: (And I know 100% sure that Camera Roll exists because with nil options it fetches it)

```
let fetchOptions = PHFetchOptions()
fetchOptions.predicate = NSPredicate(format: "title = %@", "Camera Roll")
let assetCollections: PHFetchResult = PHAssetCollection.fetchAssetCollectionsWithType(.SmartAlbum, subtype: .Any, options: fetchOptions)
let album: PHAssetCollection = assetCollections.firstObject as! PHAssetCollection

```

I've read 4 or 5 different methods by people online, and they all have this predicate whether with "title = %@", or "localizedTitle = %@" or "localizedIdentifier = %@"... I DON'T GET IT. Seems to work for people, not for me. The compiler crashes at the last line trying to "unwrap a nil optional value" ('cos the fetch result is empty). Why is the search returning nil as soon as include the fetch options???

Answer: 
If you want the Camera Roll album, you're probably better off asking for it symbolically:

```
let collections = PHAssetCollection.fetchAssetCollectionsWithType(.SmartAlbum, subtype: .SmartAlbumUserLibrary, options: nil)

```

The `SmartAlbumUserLibrary` subtype is how you get the Camera Roll (which isn't always called that).
Try the format:

`fetchOptions.predicate = NSPredicate(format: "%K == %@", "title", "Camera Roll")`

or

`fetchOptions.predicate = NSPredicate(format: "%K LIKE[cd] %@", "title", "Camera Roll")`