Quiero proponer el uso de una categoría en NSArray. Cambié un poco tu requerimiento para usar un NSMutableArray como objeto compartido.
archivo de interfaz:
#import <Foundation/Foundation.h>
@interface NSArray (StaticArray)
+(NSMutableArray *)sharedInstance;
@end
archivo de implementación
#import "NSArray+StaticArray.h"
@implementation NSArray (StaticArray)
+(NSMutableArray *)sharedInstance{
static dispatch_once_t pred;
static NSMutableArray *sharedArray = nil;
dispatch_once(&pred, ^{ sharedArray = [[NSMutableArray alloc] init]; });
return sharedArray;
}
@end
Ahora se puede utilizar como:
[[NSArray sharedInstance] addObject:@"aa"];
[[NSArray sharedInstance] addObject:@"bb"];
[[NSArray sharedInstance] addObject:@"cc"];
y en otro lugar:
NSLog(@"%@", [NSArray sharedInstance]);
Si necesita una inicialización segura de subprocesos y aún desea hacerlo de forma perezosa, dispatch_once() es una buena forma de hacerlo. –
Hmm Nunca pensé en eso. Buena idea. –
vea mi código para dispatch_once() – vikingosegundo