Я работаю над своим первым приложением iOS: кулинарной книгой, в которой хранится массив объектов рецепта. Массив объявляется как и в файле заголовка так:Потеря содержимого NSArray после ViewDidLoad
@property (nonatomic, strong) NSArray *recipeArray;
В методе viewDidLoad я заполнить массив с рецептами из файла XML следующим образом:
self.recipeArray = [[NSArray alloc]initWithArray:arrayFromXML];
В рамках метода viewDidLoad, после того, как эта строка кода я могу успешно получить доступ к содержимому массива.
Проблема в том, когда я хочу получить доступ к массиву в методе prepareForSegue, массив кажется пустым. В самом начале метода prepareForSegue я положил в выходной тест заявление:
NSLog(@"Name called from segue: %@", [self.recipeArray[0] name]);
и печатает «Имя вызывается из Segue: (нуль)
Почему это происходит Как я могу получить? содержимое массива и как приходят они не сохраняются после того, как метод viewDidLoad заканчивает выполнение?
Если массив был пуст, вы получили бы сбой. Кажется, что массив был удален (заполнен). Где еще в коде вы меняете 'recipeArray'? – Wain
@TBlue, так и почему это должно что-то менять? – vikingosegundo
это единственное место в коде, которое я меняю recipeArray. В коде есть другие места, где я обращаюсь к нему, например, в методе cellForRowAtIndexPath: 'code'cell.textLabel.text = [self.recipeArray [indexPath.row] name]; [cell комплектRecipeForCell: self.recipeArray [указательPath.ряд]]; NSLog (@ "Рецепт для сотового набора как:% @", [self.recipeArray [indexPath.row] name]); возвратная ячейка; 'code' и, как ни странно, хорошо работает –