#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
. Существует несколько видов:
- Создайте свойство для вашего целевого viewcontroller и задайте свой массив после создания
VC
экземпляра. - Создайте
-(id)initWithArray:(NSMutableArray*)array;
метод для вашего viewcontroller - Используйте singleton для всего вашего проекта,