iPhone addObject для NSMutableArray из другого ViewController, использующего IBAction - PullRequest
1 голос
/ 02 февраля 2011

Я пытаюсь добавить addObject в NSMutableArray, как только пользователь нажимает кнопку «Добавить в избранное», я могу получить данные в NSDictionary, но когда я передаю NSDictionary в массив, NSLog возвращается с nil.Я что-то упустил?

-(IBAction) addtofavorites: (id)sender
{
    NSArray *key = [NSArray arrayWithObjects:@"Title", @"Description", nil];
    NSArray *objects = [NSArray arrayWithObjects:CurrentTitle, description.text, nil];
    NSDictionary *fadd = [[NSDictionary alloc] initWithObjects:objects forKeys:key];

    FavoritesViewController *fvc = [[FavoritesViewController alloc] init];
    [fvc.favorites addObject:fadd];
    [FavoritesViewController release];
}

Ответы [ 2 ]

0 голосов
/ 03 февраля 2011

Что бы я сделал, в вашем заголовочном файле создайте переменную экземпляра для вашего FavoritesViewController, которую вы сохраните.Затем используйте ленивый init, когда нажата addtoforing.Примерно так:

 if (!detailViewController) 
  {
    self.fvc = [[FavoritesViewController alloc] init];
  }

 [self.fvc.favorites addObject:fad];

Затем просто отпустите объект FavoritesViewController в dealloc

- (void)dealloc {
  [fvc release];
  [super dealloc];
}
0 голосов
/ 03 февраля 2011
FavoritesViewController *fvc = [[FavoritesViewController alloc] init];
[fvc.favorites addObject:fadd];
[FavoritesViewController release];

не выглядит правильно. У вас уже должен быть инициализированный FavoritesViewController (в котором вы можете просто получить к нему доступ и вызвать -addObject:) ...

EDIT

Во-первых, как текущий контроллер представления (тот, в котором определено -addtoflected: определено) относится к FavoritesViewController? Как пользователь будет перемещаться между этими двумя контроллерами представления?

Во-вторых, сохранится ли список избранных при разных запусках приложения? Если да, то как вы планируете сохранять / восстанавливать избранное?

В-третьих, вместо добавления избранного в контроллер представления, вам, вероятно, лучше добавить их в базовую «модель», которая будет использоваться для заполнения FavoritesViewController.

Отделение «модели» от «представления» может быть очень мощным, а также упрощает ваш код.

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