iPad large NSArray - initWithObjects vs. ArrayWithObjects

Alguien puede aclarar esto para mí
Estoy creando una aplicación para iPad que tiene un TableViewController que se supone que muestra algo entre 1000 y 2000 cadenas. Tengo esas NSStrings en un Singleton.
En el método init de Singleton, inicializo una matriz que contiene todos los datos (no tiene que ser la forma final de hacerlo, era solo una copia y pegar rápida para probar)
Hice unself.someArray = [[NSArray alloc]initWithObjects: seguido de la gran cantidad de cadenas, seguido de nil.
que funcionó bien en el simulador, pero se bloqueó con un mal acceso en el iPad justo en el inicio de la aplicación
Si uso el método de conveniencia[NSArray arrayWithObjects:instead - funciona bien.
nvestigué los instrumentos y la huella de memoria general de la aplicación es de aproximadamente 2,5 MB.
Ahora no sé por qué funciona de una manera pero no de la otra.
EDITAR

#import "StaticValueContainer.h"`

static StaticValueContainer* instance = nil;
@implementation StaticValueContainer
@synthesize customerRatingKeys;

+(StaticValueContainer*)sharedInstance
{
    if (instance == nil){
        instance = [[StaticValueContainer alloc]init];
    }
    return instance;
}

-(id)init
{
    if  ( ( self = [super init] ))
    {
        [self initCustomerRatingKeys];

    }
    return self;
}
-(void)init customerRatingKeys
{
 self.customerRatingKeys = [[NSArray alloc]initWithObjects:
 @"string1",
....
 @"string1245"

,nil
}

como dije: se bloquea en el dispositivo conself.customerRatingKeys = [[NSArray alloc]initWithObjects: pero funciona con * self.customerRatingKeys = [[NSArray arrayWithObjects ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta