This is driving me potty and I just can't figure out where I am going wrong! Lets say I have an app delegate and three classes: AppDelegate, Class1, Class2 and Class3 In AppDelegate I have an NSArray instance variable called ....Barry (lol) I also have in AppDelegate an NSUinteger outside of the interface block to hold the value of an indexPath from a table call. In Class1 I can import the app delegate .h file, create a reference to Barry using this reference and read and write its values. When I step through the code in debug I can see that instanceOfAppDelegate.Barry has been set and contains the one object Class1 writes to it. But if I then try the same thing in Class3 which is different from Class1 but needs to access Barry I do not get any errors but when querying instanceOfAppDelegate.Barry in Class3 it remains unset as it I dont think it is pointing to Barry in AppDelegate ???