I use singletones as follows: in the DataBase class with some data arrays, I implement the share method:
+(id)share { static id share = nil; if (share == nil) { share = [[self alloc] init]; } return share; }
and then in some classes: self.dataBase = [DataBase share];
source share