Ready to review.

I've tried to explain most of the code in the code.

I think that it covers more or less all requirements, But due to the lack of time, may be I've taken some "licenses".

TODO list:
- Better error handling
- Use pagination from the API to load more pictures.

Thanks for your time.

Es una aproximación totalmente valida, tener el DS y el delegado en clases aparte, es parte fundamental de la filosofía "light view controllers".

Yo también lo uso a menudo, pero para este caso de CoreData, ya tenia preparada la superclase y me resultaba mucho mas rápido en este ejercicio.

Lo cierto es que refactorizar este código para realizar la separación que comentas seria muy sencillo, ya que la comunicación "padre e hijo" se limita practicamente a lo que proporciona directamente el protocolo UICollectionViewDataSource