Как получить доступ / распечатать элемент NSMutableArray из одного представления в другое представление?

#iphone #objective-c #nsmutablearray

#iPhone #objective-c #nsmutablearray

Вопрос:

У меня есть NSMutableArray named mArray в view1 , и в нем хранятся некоторые строки. Теперь я хочу получить доступ / распечатать / сравнить эти элементы в view2 . Пожалуйста, направьте меня.

Комментарии:

1. Вы решили свою проблему? Пожалуйста, отметьте правильный ответ, чтобы отметить это сообщение как ответ.

Ответ №1:

напишите свойство synthesize для marray в классе view1.Затем создайте объект view1 в view2 и используйте в качестве view1object.marray

Комментарии:

1. Привет, я реализовал это, но при печати view1object.marray на консоли его печать равна нулю.

2. используйте nslog(@»объектами являются %@»,view1.objects);

3. я правильно его распределил и также печатаю значения, но в view1,,,, и в view2 его печать равна нулю.

4. в основном это происходит из-за неправильного распределения

5. В view1: for(int i = 0; i < 6; i ) { [self.recipiName insertObject:[NSString stringWithFormat:@»cookingType%d»,i 1] atIndex: i]; NSLog(@»recipiName element %@»,recipiName); } В view2: NSLog(@»element %@»,view2.recipiName);

Ответ №2:

Предложение:

Вы могли бы поместить массив в свой класс контроллера, где они оба могли бы получить доступ.

Всегда лучше иметь общие данные в контроллере, чем в представлениях, если данные должны быть общими для представлений.

Ответ №3:

view1.mArray должен это сделать.

Пожалуйста, обратите внимание на @synthesize mArray в view1 . Для печати массива в консоли

 NSLog(@"mArray from view 1 is %@",view1.mArray);
  

Комментарии:

1. Привет, точно то же самое, что я сделал, но это в view1, я хочу напечатать значение массива в view2.

2. покажите некоторые, чтобы мы могли видеть, что не так. Я думаю, что вы не выделили и не заполнили mArray

3. Поместите код в комментарий AAAAAAAAA. Пожалуйста, обратитесь оттуда.

Ответ №4:

Если view2 представлен как что-либо добавленное в view1, то вы можете передать это как свойство из view1.

Если оба находятся на одном уровне, порожденные контроллером super view, создайте массив в свойстве super controller и передайте его представлениям.

Вы также можете реализовать singleton и предоставить общий доступ к модели как к единому экземпляру, доступ к которому осуществляется непосредственно в представлениях.

Ответ №5:

Я предполагаю, что ваши представления расположены в разных ViewControllers . Существует несколько видов:

  1. Создайте свойство для вашего целевого viewcontroller и задайте свой массив после создания VC экземпляра.
  2. Создайте -(id)initWithArray:(NSMutableArray*)array; метод для вашего viewcontroller
  3. Используйте singleton для всего вашего проекта,