¿Está bien hacer una initialization lenta / cargar todos los objects?

Me encuentro iniciando perezosa todas mis funciones ahora. Simplemente se siente más natural y me permite dejar de escribir las funciones de configuration. ¿Esto es malo por layout? ¿Cuáles son las trampas?

@property (nonatomic, strong) NSMutableArray *array1; -(NSMutableArray *)array1{ if (!_array1){ _array1 = [[NSMutableArray alloc] init]; } return _array1; } 

Luego me encuentro haciendo cosas como:

 -(NSMutableArray *)array1{ if (!_array1){ _array1 = [[NSMutableArray alloc] init]; // read a file // [_array addObject:newObject]; } return _array1; } 

Es y no es. La creación de instancias lazy está bien como concepto, pero debes tener cuidado. Por ejemplo, si dos subprocesss diferentes intentan acceder a cualquiera de sus variables al mismo time, es posible que termine con dos variables insta- ladas de forma diferente. Vea la respuesta aquí:

Subprocesamiento perezoso seguro en iOS

Hacer carga perezosa para todo, puede hacer que el time de ejecución disminuya la interacción del usuario porque la aplicación puede estar ocupada de vez en cuando para cargar cosas en la memory. Úselo solo cuando sea necesario (es decir, cuando un object requiere mucha memory para una carga completa …)