iPhone: uso de NSMutableArry en AppDelegate como variable global

Lo que estoy tratando de lograr es tener un NSMutableArray definido en el AppDelegate. Entonces tengo dos UIViewControllers. Una vista es responsable de mostrar la matriz desde AppDelegate. La otra vista se usa para agregar elementos a la matriz. Entonces la matriz comienza a estar vacía. View1 no muestra nada porque la matriz está vacía. El usuario va a View2 y agrega un elemento a la matriz en AppDelegate. Luego, cuando el usuario vuelve a View1, ahora muestra un elemento.

Así es como estoy tratando de lograr esto

@interface CalcAppDelegate : NSObject <UIApplicationDelegate> {
 UIWindow *window;
 UITabBarController *tabBarController;
 NSMutableArray *globalClasses;
}
@property (nonatomic,retain) NSMutableArray *globalClasses;

Mi otra vista

En viewDidload configuré la matriz en mi Vista para que sea la del AppDelegate. En un esfuerzo por retener los valores.

allCourses = [[NSMutableArray alloc]init];
CalcAppDelegate *appDelegate = (CalcAppDelegate *)[[UIApplication sharedApplication] delegate];
allCourses = appDelegate.globalClasses;

Luego, actualizaría mi matriz de todos los cursos agregando un nuevo elemento. Luego intente configurar la matriz en AppDelegate para que sea igual a la modificada.

CalcAppDelegate *appDel = (CalcAppDelegate *)[[UIApplication sharedApplication] delegate];
    NSLog(@"Size before reset %d",[appDel.globalClasses count]);
    appDel.globalClasses = allCourses;
    NSLog(@"Size after reset %d",[appDel.globalClasses count]);

Lo que veo que se devuelve es 2 en el antes y 2 después. Por lo tanto, no parece que se esté actualizando correctamente. ¿Alguna sugerencia?

Respuestas a la pregunta(2)

Su respuesta a la pregunta