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 @dynamic
propriedades são criadas por uma primeira chamada para self.progressViewService
e self.resourceLoader
.