Количество массивов отличается в двух представлениях iPhone

#iphone #nsmutablearray

#iPhone #nsmutablearray

Вопрос:

Я добавляю значения в массив в одном классе и получаю доступ к этому массиву в другом классе. Вот мой код =>

 abcView.dateArray = [[NSMutableArray alloc]init];
// fetch data from db amp;  assign to date
        [abcView.dateArray addObject:date];
        NSLog(@"Count value of dateArray =>%d",[abcView.dateArray count]);
  

Здесь я получаю результат count как => 3

После этого я пытаюсь получить доступ к этому массиву в методе viewDidLoad abcViewController.m следующим образом

 NSInteger countVal = [dateArray count];
NSLog(@"dateArray count =>%d",countVal);
  

Здесь я получаю результат count как => 0

Пожалуйста, помогите мне… Спасибо

Комментарии:

1. На этот вопрос нельзя ответить так, как было задано. Я не могу знать, являются ли эти объекты dateArray одним и тем же объектом, и даже если это так, обращаетесь ли вы к ним одновременно (ish) или меняете промежуточные массивы. Кроме того, первый фрагмент явно неверен, поскольку выделение массива и добавление к нему одной вещи не приведет к количеству, равному 3. Пожалуйста, используйте отладчик для отслеживания вашего кода, чтобы увидеть, что происходит, или укажите гораздо больше контекста в вопросе, но выполнить собственную отладку этого, вероятно, будет проще.

Ответ №1:

Убедитесь, что dateArray не равен нулю во втором случае.

Если dateArray является свойством представления, то вам придется пройти через представление, чтобы получить к нему доступ с вашего контроллера представления. Например, если вы устанавливаете представление ABCViewController для экземпляра подкласса UIView с именем ABCView, то код вашего контроллера может выглядеть примерно так:

 NSInteger countVal = [((ABCView *)self.view).dateArray count];