2 parts:
1) Questions about memory management. ARC vs MRC, Thread Safety (deadlock, race conditions), Blocks, Weak vs Strong references. I missed keeping strong refs to weak items during the block statement life cycle.
2) Coding question. Once I realized it was a permutation function and went strait to the recursion.