It’s a best practice.
In the case of our app as it stands now, we are storing the images in an object in memory, but that’s not a real-world scenario (more on that in a minute.) Even still, we want to be careful of our memory consumption. Imagine if it was a different app where lots of images were getting stored in memory, and we never manually cleaned up after ourselves (think of a web browser, loading pages.) As a user continues using our app, we will end up consuming all of the memory, and making the device run slow.
In a real app, the images would get stored to a database of some sort. It would be a safe bet that as our project continues, we will implement some kind of file system storage for the photos. Since these photos are user data and not a cache, the OS will never clean them itself, even after we stop referencing one (databases don’t use ARC – items are only removed when we tell them to be.) If a photo is removed, we want to remove the photo not only from the UI, but from the file system as well. If we don’t, we could end up needlessly consuming all of the users storage space.