Я хочу иметь доступ к массиву объектов в моем приложении для iPhone. Массив объектов заполняется в appDelegate моего приложения, и я хочу иметь возможность доступа к массиву в одном из моих контроллеров представления.
В настоящее время я настроил массив в своем файле appDelegate.h следующим образом:
NSArray *listObjArray;
@property (nonatomic, retain) NSArray *listObjArray;
Затем я заполняю его некоторыми строками в AppDelegate:
listObjArray = [NSArray arrayWithObjects:@"Hello", @"How", @"are", nil];
NSLog(@"Array size = %i", [listObjArray count]);
Синтезируется и выпускается в dealloc. NSLog возвращает правильный счет здесь.
В своем классе ViewController я импортирую appDelegate следующим образом:
#import "MyaAppDelegate.h"
Затем я получаю доступ к своему appDelegate и NSArray, как это, и пытаюсь записать счет в моем View Controller:
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication]
delegate];
NSLog(@"Before array set");
NSArray *newArray = [appDelegate listObjArray];
NSLog(@"After array set");
NSLog(@"array count = %i", [newArray count]);
NSLog(@"After array count");
Запись в журнале происходит до «После установки массива», а затем я получаю «EXC_BAD_ACCESS» в строке, где я пытаюсь распечатать счет из массива в View Controller.
Печать счетчика работает нормально из appDelegate и установка newArray, так как кажется, что массив из делегата работает, но я ничего не могу с этим поделать.
Кто-нибудь может увидеть, что я делаю не так?