2013-09-18 3 views
1

У меня есть много View Controller, и все они используют один и тот же класс (ViewController).создать глобальный NSMutableArray

В ViewController.m У меня есть этот код:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    pedidoNomeArray = [[NSMutableArray alloc] init]; 
    pedidoValorArray = [[NSMutableArray alloc] init]; 
} 

и когда я иду в View Controller номер 2 мой массив pedidoNomeArray и pedidoValorArray равны нулю.

Что мне нужно сделать, чтобы использовать тот же массив во всех моих контроллерах View?

благодаря

ответ

1

Одной из причин может быть то, что вы не используете ARC. В этом случае вы назначаете вновь инициализированный массив непосредственно на ivar, то есть без использования сеттера. В этом случае массив не сохраняется и освобождается, как только ваше приложение входит в цикл выполнения. Итак, если вы не используете ARC, используйте вместо этого pedidoNomeArray = [[[NSMutableArray alloc] init] retain];. Но вы действительно должны использовать ARC, так как это позволяет избежать большинства проблем управления памятью.

EDIT (из-за вас комментарий):
Теперь мне кажется, что то, что вам нужно, это модель данных в соответствии с MVC software architecture pattern. Ваши данные хранятся в независимом объекте, и оба контроллера вашего вида имеют ссылку на этот объект. Ваша модель данных, содержащая ваш «глобальный массив», может быть инстанцирована, например. в прикладном делегате или контроллер зрения корня, это спорно, примеры и обсуждение см here. Надеюсь, это поможет.

+0

Что мне нужно: глобальный NSMutableArray, где я могу загрузить, когда приложение открыто, а затем я могу использовать значения в моем ViewController. NSMutableArray работает нормально, но когда я нажимаю на кнопку и перехожу к другому контроллеру просмотра, этот новый вид использует тот же класс (ViewController) и в этом представлении имеет код в «viewDidLoad» для создания массива, поэтому я новый массив и не старый массив, который я хочу, чтобы старые значения. – eugui

+0

См. Мое редактирование выше. –

Смежные вопросы