非null变量被称为null?

时间:2011-01-21 23:43:06

标签: flex actionscript-3 flex4

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 个答案:

答案 0 :(得分:3)

您是否尝试创建ArrayCollectioncategoryArr = new ArrayCollection();

答案 1 :(得分:2)

所以,如果你得到那个在那一行有一个空引用,那是因为categoryArr可能是null。你需要初始化它,比如@ www0x0k建议。

我还建议您可能不希望以这种方式使用索引。它假设特定ArrayCollection的长度太多而没有任何边界检查。请考虑这样的代码:

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