У меня есть один ViewController, который принимает объекты от CoreData
и строит с ними UITableView
. Когда пользователь нажимает строка, я получаю объект репортажа и передать его на следующий контроллер представления с использованием:ARC. Object from array points to nil
Reportage *reportage = [self.reportages objectAtIndex:indexPath.row];
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
ReportageTeaserPanelViewController *rightController = (ReportageTeaserPanelViewController*)self.menuContainerViewController.rightMenuViewController;
rightController.reportage = reportage;
[self.menuContainerViewController toggleRightSideMenuCompletion:nil];
Переменная репортажа объявлена как сильна в контроллере ReportageTeaserPanelViewController
.
Проблема заключается в следующем. Если мне нужно перезагрузить асинхронно объекты в массиве родительского контроллера представления из-за наличия обновления в моей веб-службе, репортаж переменной будет равен нулю в контроллере ReportageTeaserPanelViewController. Я думал, что при использовании сильной ссылки контроллер ReportageTeaserPanelViewController должен сохранять «старый» объект репортажа, хотя он исчезает из массива.
Есть ли объяснения этого поведения?
Благодаря
Если 'reportage' равен нулю после выполнения первого утверждения выше, это потому, что' self.reportages' равен нулю. Также возможно, конечно, что вы никогда не устанавливаете 'rightController.reportage', потому что' rightController' равен нулю. –