#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];