我目前正在使用最新版本的Adobe Flash Builder创建一个移动应用程序。对于应用程序,一个特性是允许用户对内容添加书签,这是通过将要添加书签的对象的id存储到设备上的SQLite数据库中来实现的。这部分已经做得很成功,它们保存得很好。
现在我想做的是从数据库中拉回书签id,并将它们传递给需要对外部数据库进行的WebService调用。当我从本地数据库中检索书签id时,它们包含在对象中,我现在需要找到一种方法,从ArrayCollection中的数据库对象中获取id,并将它们存储在一个新数组中,该数组将传递给WebService,因为WebService期望一个Int数组而不是对象数组。下面是我创建的代码,用于查看对象项是否在对象数组列表中:
private function loop():void
{
var index:int;
for( index = 0; index < compsCollection.length; index++ )
{
trace( "Element " + index + " is " + compsCollection[index].comp_id );
}
}
现在,当我测试应用程序时,一切似乎都很好,跟踪语句返回以下内容:
Element 0 is 91
Element 1 is 9
Element 2 is 9
Element 3 is 9
Element 4 is 9
Element 5 is 9
Element 6 is 9
Element 7 is 282
Element 8 is 282
Element 9 is 282
Element 10 is 282
Element 11 is 282
Element 12 is 282
然后,我尝试使用下面的代码将每个对象的Int值填充到一个新的数组中:
var ids:Array;
var index:int;
for( index = 0; index < compsCollection.length; index++ )
{
trace( "Element " + index + " is " + compsCollection[index].comp_id );
ids.push(compsCollection[index].comp_id);
}
}
然而,当我运行这段代码时,我得到了这个错误:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
这个错误发生在行:
ids.push(compsCollection[index].comp_id);
我不明白为什么我得到这个错误,有人可以帮助吗??由于
虽然我对Adobe Flash Builder一无所知,但通常你必须在使用它之前实例化一个数组。
var ids:Array = [];
也许? ?(如RIAstar建议)