Непустая переменная называется нулевой? - PullRequest
0 голосов
/ 22 января 2011
protected var categoryXML:XML;
protected var categoryArr:ArrayCollection;
protected var categoryList:IList;

for (var i:int=0;i<getLength(categoryXML.category);i++) {
   trace(categoryXML.category[i].name);
   categoryArr[i] = categoryXML.category[i].name;
}

У меня проблемы с этим битом кода ...

Трассировка здесь работает отлично, и я получаю ожидаемый ответ, но когда пытаюсь добавить его в переменную categoryArrНа меня кричат ​​и говорят, что это ноль.

Что может вызвать здесь разницу?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 22 января 2011

Вы пытались создать ArrayCollection: categoryArr = new ArrayCollection();?

2 голосов
/ 22 января 2011

Итак, если вы получаете, что в этой строке есть нулевая ссылка, это потому, что categoryArr, вероятно, является нулевым.Вам нужно инициализировать его, как предложено @ www0x0k.

Я также предположу, что вы, вероятно, не хотите использовать индексы таким образом.Он предполагает слишком многое о длине конкретной коллекции ArrayCollection без какой-либо проверки границ.Вместо этого рассмотрим код, подобный этому:

categoryArr = new ArrayCollection();
for each(var category in categoryXML.category) {
   trace(category.name);
   categoryArr.addItem(category.name);
}
...