Originariamente inviato da Caiodark
Crea una classe SingletonArray con questo header:

codice:
static NSMutableArray *array;

@interface CBSingletonArray : NSObject
{
    
}
+ (NSMutableArray *)getArrayInstance;
@end
e questa implementazione :

codice:
@implementation CBSingletonArray
+ (NSMutableArray *)getArrayInstance{
    if (array == nil){
        array = [[NSMutableArray alloc] init];
    }
    return array;
}
@end
In ogni file implementazione dove hai bisogno del vettore aggiungi l'import all'header SingletonArray.

Per accedere al vettore:

codice:
NSMutableArray *array = [CBSingletonArray getArrayInstance];
In questo modo sei sicuro di istanziare un solo array e di poterci accedere ovunque ti serva.

Il primo metodo, quello che usava un NSMutableArray globale funziona davvero.
Però ho notato ciò che (il mio idolo) Caiodark mi aveva detto: nel caso della deallocazione dell'array il programma va in palla.

Ho cominciato ad usare il metodo del Singleton, propostomi anche quello dall'utente (che risulta essere il mio idolo) Caiodark.

Il problema è che pur adoperandomi con tutto me stesso se uso il singleton all'interno di un metodo risulta che la dichiarazione locale nasconde le variabili d'istanza.
Riporto: "local declaration of 'array' hides instance variable".
codice:
-(IBAction)addObj: (id)sender{
    NSMutableArray *array = [CBSingletonArray getArrayInstance];
    OggettoQualsiasi *oggetto = [[OggettoQualsiasi alloc] init];
    [array insertObject:oggetto atIndex:0];
}
Ho provato anche a dichiararlo nel main, ma rimane comunque nascosto al resto.
Devo buttare il computer o è possibile risolvere questa roba?

EDIT:
Sto provando ad anteporre extern davanti al vettore richiamato all'interno del metodo, ma tutto ciò mi sta soltanto facendo innervosire