【发布时间】:2015-03-03 18:37:48
【问题描述】:
在钛合金移动应用项目中:
var apptList = Ti.UI.createListView();
var calendar = Ti.UI.createListSection({ headerTitle: 'Appointments'});
var appts = [];
var apptsData = [];
.....
//format: null, Startdate, Enddate, Location, AppoinmentID (repeats)
apptsData = parseDates(this.responseText);
Ti.API.info(apptsData.toString());
我的 parseDates 函数将这些值作为数组返回,下面显示了 toString。 (可以不都是日期)
,2013-09-30T00:00:00Z,2013-09-30T00:13:00Z,Dayton Ohio,1,,2015-10-05T00:00:00Z,2015-10-30T00:13:00Z,New York,2,,1992-10-07T00:00:00Z,1992-10-07T00:13:00Z,Demoines,3,,2013-09-30T00:00:00Z,2013-09-30T00:13:00Z,Bellbrook Ohio,4,
无论出于何种原因,我无法让这些值显示在我的 ListView 中。除了这些值,我什至无法访问数组的任何部分。
此外,按某些值递增会使我的应用程序崩溃(无错误消息),而有些则不会(例如 i += 5 崩溃,i +=6 不会),就好像我正在访问不存在的数据或某些数据一样其他内存问题。
for(var i = 0; i <= 20; i += 5){
//skips null
Ti.API.info(apptsData[i + 1]);
appts.push({properties: {title: apptsData[i + 1]}}); //Start Date
Ti.API.info(apptsData[i + 2]);
appts.push({properties: {title: apptsData[i + 2]}}); //End Date
Ti.API.info(apptsData[i + 3]);
appts.push({properties: {title: apptsData[i + 3]}}); //Location
}
第一个循环将推送和打印(相同的值显示在我的 ListView 中):
[INFO] : 2013-09-30T00:00:00Z
[INFO] : 2013-09-30T00:13:00Z
[INFO] : Dayton Ohio
但在那之后我只会得到空值。
Ti.API.info("length: " + apptsData.length);
长度返回 6,而它应该更高。
下面我正在尝试将列表视图/部分添加到我的窗口中
var calendar = Ti.UI.createListSection({ items: appts });
apptList.sections = [calendar];
$.calendarWindow.add(apptList);
【问题讨论】:
-
使用调试器单步调试应用程序,在单步调试时不断检查 apptsData 值。我知道有些人喜欢依赖 Ti.API.info 进行调试。这里可能没有足够的源代码来确定问题。我知道在某些项目中很难提供适量的代码,但是当所有代码都像这样被切碎时,你真的无法帮助确定哪里出了问题。
-
是的,我正在尝试这样做。无论出于何种原因,我的调试器都搞砸了(不显示变量值,也不在断点处停止)。但我认为这是一个完全不同的问题。如果我修复它并解决我的问题,我一定会发布更新。
标签: javascript listview titanium titanium-alloy