Good article. One thing to make clear here is a memory leak is not occurring on a retain cycle. The correct terminology is abandoned memory. When memory actually isn't freed and no longer usable as there are potentially no references anymore. It has been discussed on occasion at WWDC. I believe it was in 2011, around the time they introduced ARC.