Categories foundations 2 foundations How to use Blocks with GCD correctly to avoid retain cycle Objective C ivars' definition