NSMutableArray Vs UIView iphone - PullRequest
       4

NSMutableArray Vs UIView iphone

0 голосов
/ 18 сентября 2009

У меня есть NSMutableArray в моих классах MainViewController. Я добавил 10 объектов в NSMutableArray. Когда я нажимаю кнопку subview в моих классах MainViewController, я нажимаю SubviewController (UIViewController) классы .... В классах subviewcontroller я хочу использовать значения MainViewController NSMutableArray. А также я хочу добавить или удалить объекты из этого NSMutableArray ...

Моя цель - использовать значения NSMutableArray для всех классов UIViewController в моем проекте с тем же именем переменной.

Ответы [ 2 ]

1 голос
/ 18 сентября 2009

Что вы хотите сделать, это добавить свойство Какао в ваш контроллер основного представления, которое ссылается на экземпляр NSMutableArray, который вы создаете и заполняете элементами.

В шапке:

@interface MainViewController : UIViewController {
  NSMutableArray *myMutableArray;
}

@property (nonatomic, retain) NSMutableArray *myMutableArray;

@end

В реализации добавьте директиву @synthesize и запомните release массив в -dealloc:

@implementation MainViewController

@synthesize myMutableArray;

...

- (void) dealloc {
  [myMutableArray release];
  [super dealloc];
}

@end

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

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

- (void) pushSubordinateViewController {
  SubordinateViewController *subVC = [[SubordinateViewController alloc] initWithNibName:@"SubordinateViewController" bundle:nil];
  subVC.myMutableArray = self.myMutableArray; // this sets the sub view controller's mutable array property
  [self.navigationController pushViewController:subVC animated:YES];
  [subVC release];
}

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

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

Чтобы использовать массив, просто позвоните self.myMutableArray, например, [self.myMutableArray addObject:object].

1 голос
/ 18 сентября 2009

Если я вас правильно понял - вы хотите получить доступ к NSMutableArray в MainViewController со всех ваших контроллеров (subview)?

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

Я думаю, что лучшей идеей было бы переместить данные в какой-то глобально доступный экземпляр (например, в класс ApplicationDelegate или обернуть его в одноэлементный класс)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...