Inicialização lenta em Objective-C

A inicialização lenta em Objective-C pode ser feita de maneira simples via BloodMagic

interface ViewController : UIViewController
<BMLazy>

property (nonatomic, strong) ProgressViewService *progressViewService;
property (nonatomic, strong) ResourceLoader *resourceLoader;

end

implementation ViewController

dynamic progressViewService;
dynamic resourceLoader;

- (void)loadResources
{
[self.progressViewService showProgressInView:self.view];

self.resourceLoader.delegate = self;
[self.resourceLoader loadResources];
}

end

E é isso. Ambas as @dynamicpropriedades são criadas por uma primeira chamada para self.progressViewServicee self.resourceLoader.